.lac-root {
    --lac-bg: #ffffff;
    --lac-fg: #0f172a;
    --lac-muted: #6b7280;
    --lac-border: #e5e7eb;
    --lac-bubble-user: var(--lac-accent);
    --lac-bubble-bot: #f3f4f6;
    --lac-shadow: 0 20px 60px rgba(2, 8, 23, 0.18);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--lac-fg);
    box-sizing: border-box;
}
.lac-root *, .lac-root *::before, .lac-root *::after { box-sizing: border-box; }
.lac-root.lac-theme-dark  { --lac-bg:#0b1220; --lac-fg:#e5e7eb; --lac-muted:#9ca3af; --lac-border:#1f2937; --lac-bubble-bot:#111827; }
.lac-root.lac-theme-glass { --lac-bg: rgba(255,255,255,.7); --lac-border: rgba(255,255,255,.5); }

/* Panel base */
.lac-panel {
    background: var(--lac-bg);
    border: 1px solid var(--lac-border);
    border-radius: var(--lac-radius);
    box-shadow: var(--lac-shadow);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    backdrop-filter: blur(14px);
}
.lac-layout-fullwidth .lac-panel { max-width: 100%; }
.lac-layout-sidebar  .lac-panel { max-width: 380px; position: sticky; top: 90px; }

/* Floating launcher */
.lac-layout-floating { position: fixed; z-index: 99990; bottom: 20px; }
.lac-pos-bottom-right.lac-layout-floating { right: 20px; }
.lac-pos-bottom-left.lac-layout-floating  { left: 20px; }
.lac-layout-floating .lac-panel { display: none; width: 380px; max-width: calc(100vw - 40px); height: 560px; max-height: calc(100vh - 100px); }
.lac-layout-floating.lac-open .lac-panel { display: flex; }
.lac-launcher {
    appearance: none; border: none; cursor: pointer;
    background: var(--lac-accent); color: #fff;
    width: 60px; height: 60px; border-radius: 50%;
    box-shadow: 0 14px 30px rgba(0,0,0,.25);
    display: inline-flex; align-items: center; justify-content: center;
    transition: transform .2s ease;
}
.lac-launcher:hover { transform: translateY(-2px); }
.lac-layout-floating.lac-open .lac-launcher { display: none; }

/* Header */
.lac-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--lac-border);
    background: linear-gradient(135deg, color-mix(in srgb, var(--lac-accent) 12%, var(--lac-bg)), var(--lac-bg));
}
.lac-id { display: flex; align-items: center; gap: 12px; }
.lac-avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; background: var(--lac-accent); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.lac-id-text strong { display: block; font-size: 15px; line-height: 1; }
.lac-status { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--lac-muted); margin-top: 4px; }
.lac-dot { width: 8px; height: 8px; border-radius: 50%; background: #10b981; box-shadow: 0 0 0 4px rgba(16,185,129,.18); }
.lac-close { background: transparent; border: none; cursor: pointer; font-size: 22px; color: var(--lac-muted); width: 32px; height: 32px; border-radius: 8px; }
.lac-close:hover { background: rgba(0,0,0,.05); }

/* Weather strip */
.lac-weather { display: flex; gap: 10px; align-items: center; padding: 8px 16px; background: rgba(13, 110, 253, .08); border-bottom: 1px solid var(--lac-border); font-size: 13px; }
.lac-weather img { width: 32px; height: 32px; }

/* Stream */
.lac-stream { flex: 1 1 auto; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; min-height: 280px; max-height: 60vh; }
.lac-bubble { padding: 10px 14px; border-radius: 14px; max-width: 88%; line-height: 1.45; font-size: 14.5px; word-wrap: break-word; animation: lac-fade .18s ease; }
.lac-bubble.lac-from-user { align-self: flex-end; background: var(--lac-bubble-user); color: #fff; border-bottom-right-radius: 4px; }
.lac-bubble.lac-from-bot  { align-self: flex-start; background: var(--lac-bubble-bot); color: var(--lac-fg); border-bottom-left-radius: 4px; }
.lac-bubble a { color: inherit; text-decoration: underline; }
@keyframes lac-fade { from{opacity:0; transform: translateY(4px);} to{opacity:1; transform:none;} }

.lac-typing { display: inline-flex; gap: 4px; align-items: center; padding: 10px 14px; background: var(--lac-bubble-bot); border-radius: 14px; align-self: flex-start; }
.lac-typing span { width: 6px; height: 6px; background: var(--lac-muted); border-radius: 50%; animation: lac-blink 1.2s infinite; }
.lac-typing span:nth-child(2){ animation-delay: .2s; }
.lac-typing span:nth-child(3){ animation-delay: .4s; }
@keyframes lac-blink { 0%,80%,100%{opacity:.2;} 40%{opacity:1;} }

/* Listing cards */
.lac-cards-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin: 6px 0 4px; }
.lac-listing { display: block; text-decoration: none; color: inherit; border: 1px solid var(--lac-border); border-radius: 12px; overflow: hidden; background: var(--lac-bg); transition: transform .15s ease, box-shadow .15s ease; }
.lac-listing:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.08); }
.lac-listing-img { width: 100%; aspect-ratio: 4/3; background: #f3f4f6 center/cover no-repeat; }
.lac-listing-body { padding: 8px 10px; }
.lac-listing-title { font-weight: 600; font-size: 13px; line-height: 1.3; margin: 0 0 4px; }
.lac-listing-meta  { font-size: 12px; color: var(--lac-muted); }

.lac-external { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.lac-external a { font-size: 12px; padding: 6px 10px; border: 1px solid var(--lac-border); border-radius: 999px; text-decoration: none; color: var(--lac-fg); background: var(--lac-bg); }
.lac-external a:hover { border-color: var(--lac-accent); color: var(--lac-accent); }

.lac-whatsapp { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; background: #25d366; color: #fff !important; padding: 10px 14px; border-radius: 999px; font-weight: 600; text-decoration: none; }
.lac-whatsapp:hover { background: #1ebe57; }

/* Chips */
.lac-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 16px 8px; }
.lac-chip { background: var(--lac-bubble-bot); border: 1px solid var(--lac-border); color: var(--lac-fg); padding: 6px 12px; border-radius: 999px; cursor: pointer; font-size: 13px; }
.lac-chip:hover { border-color: var(--lac-accent); color: var(--lac-accent); }

/* Form */
.lac-form { display: flex; gap: 8px; padding: 12px 14px; border-top: 1px solid var(--lac-border); background: var(--lac-bg); }
.lac-input { flex: 1 1 auto; padding: 12px 14px; border-radius: 999px; border: 1px solid var(--lac-border); background: var(--lac-bg); color: var(--lac-fg); font-size: 14px; outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
.lac-input:focus { border-color: var(--lac-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--lac-accent) 25%, transparent); }
.lac-send { background: var(--lac-accent); color: #fff; border: none; cursor: pointer; width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }
.lac-send:hover { filter: brightness(1.05); }
.lac-send:disabled { opacity: .5; cursor: not-allowed; }

/* Quest CTA */
.lac-quest-cta { padding: 10px 14px; border-top: 1px solid var(--lac-border); background: linear-gradient(90deg, color-mix(in srgb, var(--lac-accent) 8%, var(--lac-bg)), var(--lac-bg)); }
.lac-quest-open { width: 100%; background: transparent; border: 1px dashed var(--lac-accent); color: var(--lac-accent); padding: 10px; border-radius: 12px; cursor: pointer; font-weight: 600; }
.lac-quest-open:hover { background: color-mix(in srgb, var(--lac-accent) 8%, transparent); }

/* Quest modal */
.lac-quest-modal { position: fixed; inset: 0; z-index: 99999; background: rgba(2,8,23,.55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.lac-quest-card { background: #fff; color:#0f172a; border-radius: 18px; padding: 26px; max-width: 520px; width: 100%; box-shadow: var(--lac-shadow); animation: lac-fade .2s ease; }
.lac-quest-q { font-size: 18px; font-weight: 700; margin: 0 0 16px; }
.lac-quest-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lac-quest-options button { padding: 14px; border: 1px solid #e5e7eb; background: #fff; border-radius: 14px; cursor: pointer; font-size: 14px; text-align: left; transition: all .15s ease; }
.lac-quest-options button:hover { border-color: var(--lac-accent); background: color-mix(in srgb, var(--lac-accent) 8%, white); }
.lac-quest-progress { height: 4px; background: #f3f4f6; border-radius: 999px; overflow: hidden; margin-bottom: 18px; }
.lac-quest-progress > span { display: block; height: 100%; background: var(--lac-accent); transition: width .3s ease; }
.lac-quest-result { text-align: center; }
.lac-quest-result h3 { font-size: 22px; margin: 0 0 6px; }
.lac-quest-code { display: inline-block; padding: 10px 18px; background: #f3f4f6; border-radius: 10px; font-weight: 700; letter-spacing: .12em; margin: 12px 0; }
.lac-quest-form { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.lac-quest-form input { padding: 12px 14px; border: 1px solid #e5e7eb; border-radius: 10px; font-size: 14px; }
.lac-quest-form button { background: var(--lac-accent); color: #fff; border: none; padding: 12px; border-radius: 10px; font-weight: 600; cursor: pointer; }

/* Inline shortcode CTA card */
.lac-quest { padding: 18px; border: 1px dashed var(--lac-border, #e5e7eb); border-radius: 14px; text-align: center; }
.lac-quest-launch { background: var(--lac-accent, #0d6efd); color: #fff; border: none; padding: 12px 22px; border-radius: 999px; cursor: pointer; font-weight: 600; }

/* Listeo hero replacement */
body.lac-replace-hero #hero, body.lac-replace-hero .main-search-container { display: none !important; }

/* RTL */
[dir="rtl"] .lac-bubble.lac-from-user { border-bottom-right-radius: 14px; border-bottom-left-radius: 4px; }
[dir="rtl"] .lac-bubble.lac-from-bot  { border-bottom-left-radius: 14px; border-bottom-right-radius: 4px; }

/* ========== Spin for Tonight's Deal ========== */
.lac-spin{max-width:520px;margin:24px auto;padding:22px;border-radius:18px;background:linear-gradient(140deg,#fff8e6,#ffeed4);box-shadow:0 12px 40px rgba(0,0,0,.08);text-align:center;font-family:inherit}
.lac-theme-dark .lac-spin{background:linear-gradient(140deg,#1f2937,#111827);color:#f3f4f6}
.lac-spin-title{margin:0 0 4px;font-size:22px;font-weight:700}
.lac-spin-sub{margin:0 0 18px;opacity:.75;font-size:14px}
.lac-spin-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px}
.lac-wheel{position:relative;width:220px;height:220px;border-radius:50%;background:conic-gradient(#fde68a 0 45deg,#fca5a5 45deg 90deg,#a7f3d0 90deg 135deg,#bfdbfe 135deg 180deg,#ddd6fe 180deg 225deg,#fbcfe8 225deg 270deg,#fef3c7 270deg 315deg,#bae6fd 315deg 360deg);box-shadow:inset 0 0 0 6px #fff,0 8px 24px rgba(0,0,0,.18);overflow:hidden;transform:rotate(0deg);transition:transform 2.4s cubic-bezier(.17,.67,.21,1)}
.lac-wheel-inner{position:absolute;inset:0}
.lac-wheel-inner span{position:absolute;left:50%;top:14px;font-size:26px;transform:translateX(-50%) rotate(calc(var(--i) * 45deg));transform-origin:50% 96px}
.lac-wheel.lac-spinning{transform:rotate(2160deg)}
.lac-wheel.lac-stopped{transform:rotate(2070deg)}
.lac-wheel-pin{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:22px solid #ef4444;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25));z-index:2}
.lac-spin-btn{appearance:none;border:0;cursor:pointer;padding:14px 28px;border-radius:999px;font-size:16px;font-weight:700;background:var(--lac-accent,#0d6efd);color:#fff;box-shadow:0 6px 18px rgba(13,110,253,.35);transition:transform .15s}
.lac-spin-btn:hover{transform:translateY(-1px)}
.lac-spin-btn:disabled{opacity:.6;cursor:not-allowed}
.lac-spin-result{margin-top:18px;text-align:left}
.lac-spin-empty{padding:14px;border-radius:10px;background:rgba(255,255,255,.6);text-align:center}
.lac-deal{display:flex;flex-direction:column;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.10);overflow:hidden}
.lac-theme-dark .lac-deal{background:#1f2937}
.lac-deal-img{width:100%;height:160px;background-size:cover;background-position:center}
.lac-deal-body{padding:14px 16px}
.lac-deal-body h4{margin:0 0 6px;font-size:18px}
.lac-deal-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;opacity:.75;margin-bottom:8px}
.lac-deal-discount{margin:8px 0;padding:8px 12px;border-radius:8px;background:linear-gradient(90deg,#fef3c7,#fde68a);color:#92400e}
.lac-deal-timer{font-size:14px;font-weight:600;color:#dc2626;margin:6px 0 12px}
.lac-deal-timer.lac-expired{color:#6b7280}
.lac-deal-actions{display:flex;flex-wrap:wrap;gap:8px}
.lac-deal-actions a{flex:1;min-width:140px;text-align:center;padding:10px 14px;border-radius:10px;text-decoration:none;font-weight:600;font-size:14px}
.lac-btn-outline{border:1.5px solid var(--lac-accent,#0d6efd);color:var(--lac-accent,#0d6efd);background:#fff}
.lac-wa{background:#25D366;color:#fff !important}
.lac-wa:hover{background:#1ebe57}
@media (max-width:480px){.lac-wheel{width:180px;height:180px}.lac-wheel-inner span{font-size:22px;transform-origin:50% 78px}}

/* =========== TRIP CARD =========== */
.lac-tripcard-block { border:1px solid rgba(0,0,0,.08); border-radius:14px; padding:18px; background:#fff; max-width:560px; margin:18px 0; }
.lac-tc-title { margin:0 0 4px; font-size:1.1rem; }
.lac-tc-sub   { margin:0 0 12px; color:#6b7280; font-size:.9rem; }
.lac-tc-form input { width:100%; padding:9px 11px; border:1px solid #e5e7eb; border-radius:9px; margin-bottom:8px; font:inherit; box-sizing:border-box; }
.lac-tc-row { display:grid; grid-template-columns:1fr 1fr 110px; gap:8px; }
.lac-btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:10px 14px; background:var(--lac-accent,#0d6efd); color:#fff; border:none; border-radius:10px; font-weight:600; cursor:pointer; text-decoration:none; }
.lac-btn:hover { filter:brightness(.95); }
.lac-tc-go { width:100%; }
.lac-tc-card { border-radius:18px; overflow:hidden; border:1px solid rgba(0,0,0,.08); background:linear-gradient(180deg,#fff,#f8fafc); margin:18px 0; box-shadow:0 14px 40px rgba(15,23,42,.08); }
.lac-tc-card-head { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; background:var(--tc-color,#0d6efd); color:#fff; font-weight:700; }
.lac-tc-tag { font-size:.7rem; letter-spacing:.18em; opacity:.85; background:rgba(255,255,255,.18); padding:3px 8px; border-radius:6px; }
.lac-tc-body { display:grid; grid-template-columns:1fr 140px; gap:14px; padding:16px; }
.lac-tc-info h4 { margin:0 0 6px; font-size:1.15rem; }
.lac-tc-dest, .lac-tc-meta { color:#475569; font-size:.9rem; margin:2px 0; }
.lac-tc-listing { display:flex; gap:8px; margin-top:10px; align-items:center; }
.lac-tc-listing img { width:54px; height:54px; object-fit:cover; border-radius:9px; }
.lac-tc-coupon { display:flex; align-items:center; gap:10px; margin-top:12px; padding:10px 12px; border:1px dashed var(--tc-color,#0d6efd); border-radius:10px; background:#fff; }
.lac-tc-coupon-code { font-family:ui-monospace,Menlo,monospace; font-weight:700; font-size:1.05rem; color:var(--tc-color,#0d6efd); letter-spacing:.06em; }
.lac-tc-coupon-disc { color:#374151; font-size:.85rem; }
.lac-tc-qr { display:flex; flex-direction:column; align-items:center; gap:6px; }
.lac-tc-qr img { width:140px; height:140px; border-radius:10px; background:#fff; padding:6px; box-shadow:0 4px 14px rgba(0,0,0,.06); }
.lac-tc-qr small { color:#6b7280; font-size:.7rem; text-align:center; }
.lac-tc-foot { display:flex; justify-content:space-between; padding:10px 16px; font-size:.78rem; color:#6b7280; border-top:1px solid #f1f5f9; }
.lac-tc-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.lac-tc-actions .lac-btn { flex:1; min-width:120px; }
@media (max-width:480px) { .lac-tc-body { grid-template-columns:1fr; } .lac-tc-qr img { width:180px; height:180px; } .lac-tc-row { grid-template-columns:1fr 1fr; } }

/* =========== ACTIVITY TICKER =========== */
.lac-ticker { display:inline-flex; align-items:center; gap:10px; padding:8px 14px; border-radius:999px; background:rgba(15,23,42,.92); color:#fff; font-size:.86rem; max-width:100%; box-shadow:0 8px 24px rgba(0,0,0,.18); }
.lac-ticker-pulse { width:10px; height:10px; border-radius:50%; background:#22c55e; box-shadow:0 0 0 0 rgba(34,197,94,.5); animation:lac-pulse 1.6s infinite; flex:none; }
@keyframes lac-pulse { 0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)} 70%{box-shadow:0 0 0 10px rgba(34,197,94,0)} 100%{box-shadow:0 0 0 0 rgba(34,197,94,0)} }
.lac-ticker-text { transition:opacity .3s ease; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:480px; }

/* =========== ALERTS SIGNUP =========== */
.lac-alerts { padding:18px; border-radius:14px; background:#0f172a; color:#fff; max-width:620px; margin:18px 0; }
.lac-alerts-title { margin:0 0 4px; font-size:1.15rem; }
.lac-alerts-sub { margin:0 0 12px; opacity:.8; font-size:.9rem; }
.lac-alerts-form { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.lac-alerts-form input { padding:9px 11px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:#fff; border-radius:9px; font:inherit; }
.lac-alerts-form input::placeholder { color:rgba(255,255,255,.55); }
.lac-alerts-form button { grid-column:1/-1; }
.lac-alerts-msg { margin-top:10px; padding:10px 12px; border-radius:9px; font-size:.9rem; }
.lac-alerts-msg.lac-ok { background:#16a34a; }
.lac-alerts-msg.lac-err { background:#dc2626; }
@media (max-width:480px) { .lac-alerts-form { grid-template-columns:1fr; } }

/* =========== REFERRAL =========== */
.lac-referral { padding:18px; border-radius:14px; background:linear-gradient(135deg,#fef3c7,#fde68a); max-width:560px; margin:18px 0; }
.lac-ref-title { margin:0 0 4px; }
.lac-ref-sub { margin:0 0 12px; color:#78350f; font-size:.9rem; }
.lac-ref-form input { width:100%; padding:9px 11px; border:1px solid rgba(0,0,0,.1); border-radius:9px; margin-bottom:8px; font:inherit; box-sizing:border-box; }
.lac-ref-card { background:#fff; padding:14px; border-radius:12px; margin-top:12px; }
.lac-ref-code { font-family:ui-monospace,Menlo,monospace; font-size:1.4rem; letter-spacing:.12em; font-weight:800; color:#b45309; text-align:center; }
.lac-ref-link { width:100%; padding:8px 10px; margin:8px 0; border:1px solid #e5e7eb; border-radius:8px; font:inherit; box-sizing:border-box; }
.lac-ref-actions { display:flex; flex-wrap:wrap; gap:8px; }
.lac-ref-actions .lac-btn { flex:1; min-width:110px; }
.lac-ref-stats { margin-top:8px; font-size:.85rem; color:#6b7280; text-align:center; }

/* =========== REDEEM PAGE =========== */
.lac-redeem-wrap { max-width:520px; margin:60px auto; padding:0 18px; }
.lac-redeem { background:#fff; border-radius:18px; padding:26px; text-align:center; box-shadow:0 10px 40px rgba(0,0,0,.08); }
.lac-redeem-code { font-family:ui-monospace,Menlo,monospace; font-size:2rem; letter-spacing:.1em; font-weight:800; color:#0d6efd; margin:14px 0 6px; }
.lac-redeem-discount { font-size:1.05rem; color:#374151; margin:0 0 14px; }
.lac-redeem-ok { color:#16a34a; font-weight:600; }
.lac-redeem-bad { color:#dc2626; font-weight:600; }
.lac-partners-wrap { max-width:780px; margin:40px auto; padding:0 18px; }
.lac-partners-list { list-style:none; padding:0; display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
.lac-partner { background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:14px; padding:14px; }
.lac-partner h3 { margin:0 0 4px; font-size:1.05rem; }
.lac-partner-cat { color:#6b7280; font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; }
.lac-partner-discount { color:#16a34a; font-weight:600; margin:8px 0; }
