/* Guest Experience Intelligence — custom styles */

/* ---- Guided tutorial (spotlight walkthrough) ---- */
#tour-root { position:fixed; inset:0; z-index:9996; }
.tour-overlay { position:fixed; inset:0; background:transparent; z-index:9997; transition:background .3s; }
.tour-hole { position:fixed; border-radius:14px; box-shadow:0 0 0 9999px rgba(7,11,24,.66); z-index:9998; pointer-events:none; display:none; outline:2px solid rgba(56,189,248,.9); outline-offset:2px; animation:tourPulse 2s ease-in-out infinite; transition:top .34s cubic-bezier(.4,0,.2,1), left .34s cubic-bezier(.4,0,.2,1), width .34s, height .34s; }
@keyframes tourPulse { 0%,100%{ outline-color:rgba(56,189,248,.9); outline-offset:2px } 50%{ outline-color:rgba(129,140,248,.75); outline-offset:5px } }
.tour-tip { position:fixed; width:352px; max-width:calc(100vw - 24px); background:#fff; border:1px solid rgba(15,23,42,.06); border-radius:18px; box-shadow:0 28px 70px -14px rgba(7,11,24,.55); padding:0 20px 18px; z-index:9999; overflow:hidden; transition:top .34s cubic-bezier(.4,0,.2,1), left .34s cubic-bezier(.4,0,.2,1); }
.tour-tip::before { content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,#38bdf8,#818cf8,#e879f9); }
.tour-tip.tour-anim { animation:tourIn .34s cubic-bezier(.16,1,.3,1); }
@keyframes tourIn { from{ opacity:0; transform:translateY(8px) scale(.98) } to{ opacity:1; transform:translateY(0) scale(1) } }
.tour-x { position:absolute; top:14px; right:12px; width:28px; height:28px; border-radius:8px; display:grid; place-items:center; color:#94a3b8; z-index:2; }
.tour-x:hover { background:#f1f5f9; color:#0f172a; }
.tour-head { display:flex; align-items:center; gap:13px; padding:20px 0 12px; }
.tour-ic { width:44px; height:44px; border-radius:13px; flex:none; display:grid; place-items:center; font-size:19px; color:#fff; background:linear-gradient(135deg,#0ea5e9,#6366f1); box-shadow:0 10px 22px -8px rgba(56,120,255,.75); }
.tour-eyebrow { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; color:#0284c7; margin-bottom:3px; }
.tour-title { font-size:19px; font-weight:800; color:#0f172a; letter-spacing:-.01em; line-height:1.15; padding-right:20px; }
.tour-body { font-size:14px; color:#475569; line-height:1.55; }
.tour-body b { color:#0f172a; font-weight:700; }
.tour-tips { list-style:none; margin:13px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.tour-tips li { display:flex; align-items:flex-start; gap:9px; font-size:13px; color:#334155; line-height:1.4; }
.tour-tips li i { color:#10b981; font-size:11px; margin-top:3px; flex:none; }
.tour-tips li b { color:#0f172a; }
.tour-progress { height:4px; background:#eef2f7; border-radius:999px; overflow:hidden; margin:18px 0 14px; }
.tour-progress > i { display:block; height:100%; width:0; background:linear-gradient(90deg,#38bdf8,#6366f1); border-radius:999px; transition:width .35s cubic-bezier(.4,0,.2,1); }
.tour-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tour-count { font-size:12px; font-weight:600; color:#94a3b8; }
.tour-btn-primary { display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); border-radius:11px; padding:9px 17px; cursor:pointer; box-shadow:0 10px 22px -8px rgba(2,132,199,.6); transition:transform .1s; }
.tour-btn-primary:hover { transform:translateY(-1px); }
.tour-btn-ghost { display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:600; color:#64748b; padding:9px 12px; border-radius:11px; cursor:pointer; }
.tour-btn-ghost:hover { background:#f1f5f9; color:#0f172a; }

/* ---- "Updating to today" full-page overlay ---- */
#upd-overlay { position:fixed; inset:0; z-index:9995; display:grid; place-items:center; padding:20px; background:rgba(7,11,24,.6); backdrop-filter:blur(6px); animation:updIn .25s ease; }
#upd-overlay.upd-out { animation:updOut .22s ease forwards; }
@keyframes updIn { from{ opacity:0 } to{ opacity:1 } }
@keyframes updOut { to{ opacity:0 } }
.upd-card { width:min(92vw,420px); background:#fff; border-radius:22px; box-shadow:0 30px 80px -20px rgba(7,11,24,.6); padding:34px 30px 26px; text-align:center; }
.upd-orb { width:72px; height:72px; margin:0 auto 20px; border-radius:22px; display:grid; place-items:center; font-size:28px; color:#fff; background:linear-gradient(135deg,#0ea5e9,#6366f1); box-shadow:0 16px 34px -10px rgba(56,120,255,.6); }
.upd-orb i { animation:updSpin 1.1s linear infinite; }
@keyframes updSpin { to{ transform:rotate(360deg) } }
.upd-title { font-size:20px; font-weight:800; color:#0f172a; letter-spacing:-.01em; }
.upd-status { font-size:14px; color:#475569; margin-top:8px; min-height:20px; }
.upd-bar { height:5px; border-radius:999px; background:#eef2f7; overflow:hidden; margin:20px 0 14px; position:relative; }
.upd-bar > i { position:absolute; top:0; height:100%; width:40%; border-radius:999px; background:linear-gradient(90deg,#38bdf8,#6366f1); animation:updSlide 1.3s ease-in-out infinite; }
@keyframes updSlide { 0%{ left:-40% } 100%{ left:100% } }
.upd-note { font-size:12px; color:#94a3b8; line-height:1.5; }
:root {
  --brand:#0284c7; --brand-700:#0369a1; --brand-500:#0ea5e9;
  --ink:#0f172a; --text:#334155; --muted:#64748b;
  --line:#e6eaf0; --line-soft:#eef2f7;
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --shadow:0 1px 3px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04);
  --shadow-md:0 6px 16px -6px rgba(16,24,40,.12),0 2px 6px -2px rgba(16,24,40,.06);
  --shadow-lg:0 18px 40px -12px rgba(16,24,40,.16),0 6px 14px -6px rgba(16,24,40,.08);
}

* { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body {
  font-family:'Inter', ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color:var(--text);
  letter-spacing:-.006em;
  font-feature-settings:"cv11","ss01";
}
h1,h2,h3,h4 { color:var(--ink); letter-spacing:-.018em; }

.fade-in { animation: fadeIn .25s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.nav-item { transition: all .15s ease; }
.nav-item.active { background: rgba(255,255,255,.12); color: #fff; border-left: 3px solid #38bdf8; }
.nav-item:not(.active):hover { background: rgba(255,255,255,.06); }

.card { background:#fff; border:1px solid var(--line-soft); border-radius:16px; box-shadow:var(--shadow); }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-weight:600; border-radius:10px; letter-spacing:-.006em; cursor:pointer; transition:background .15s, box-shadow .15s, color .15s, transform .08s, border-color .15s; }
.btn:active { transform:translateY(1px); }
.btn:focus-visible { outline:none; box-shadow:0 0 0 3px rgba(2,132,199,.30); }
.btn-primary { background:var(--brand); color:#fff; box-shadow:0 1px 2px rgba(2,132,199,.22); }
.btn-primary:hover { background:var(--brand-700); box-shadow:0 4px 12px -2px rgba(2,132,199,.35); }
.btn-ghost { background:#f1f5f9; color:#334155; }
.btn-ghost:hover { background:#e8edf4; color:#0f172a; }

.badge { display:inline-flex; align-items:center; gap:.3rem; font-size:.7rem; font-weight:600; padding:.16rem .55rem; border-radius:999px; letter-spacing:.005em; }
.badge-pos { background:#dcfce7; color:#15803d; box-shadow:inset 0 0 0 1px rgba(21,128,61,.12); }
.badge-neu { background:#f1f5f9; color:#475569; box-shadow:inset 0 0 0 1px rgba(71,85,105,.10); }
.badge-neg { background:#fee2e2; color:#b91c1c; box-shadow:inset 0 0 0 1px rgba(185,28,28,.12); }
.badge-urgent { background:#fef3c7; color:#b45309; box-shadow:inset 0 0 0 1px rgba(180,83,9,.14); }

.platform-google { color:#ea4335; }
.platform-booking { color:#003580; }
.platform-tripadvisor { color:#00aa6c; }
.platform-airbnb { color:#ff5a5f; }

.spinner { border:3px solid #e2e8f0; border-top-color:#0284c7; border-radius:50%; width:1.2rem; height:1.2rem; animation:spin .7s linear infinite; }
.spinner-lg { width:2.5rem; height:2.5rem; border-width:4px; }
@keyframes spin { to { transform: rotate(360deg); } }

.toast { background:#0f172a; color:#fff; padding:.75rem 1rem; border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.2); font-size:.85rem; animation:fadeIn .2s ease; max-width:340px; }
.toast-error { background:#991b1b; }
.toast-success { background:#166534; }

/* Structured Ask-AI answer card wrapper */
.ai-answer .ai-md { background:#fff; border:1px solid #e2e8f0; border-radius:1rem; border-top-left-radius:.375rem; padding:.875rem 1rem; box-shadow:0 1px 2px rgba(15,23,42,.05); }

/* markdown-ish rendering of AI text — premium, scannable fallback styling */
.ai-md { color:#334155; font-size:.875rem; line-height:1.55; }
.ai-md h1,.ai-md h2,.ai-md h3 { font-weight:700; color:#0f172a; margin:.85rem 0 .35rem; letter-spacing:-.01em; }
.ai-md h1:first-child,.ai-md h2:first-child,.ai-md h3:first-child { margin-top:0; }
.ai-md h2 { font-size:1.0rem; }
.ai-md h3 { font-size:.9rem; }
/* Custom dot bullets with breathing room instead of cramped disc list */
.ai-md ul { list-style:none; padding-left:0; margin:.5rem 0; }
.ai-md ul li { position:relative; padding-left:1.15rem; margin:.4rem 0; }
.ai-md ul li::before { content:""; position:absolute; left:.15rem; top:.55em; width:.4rem; height:.4rem; border-radius:9999px; background:#94a3b8; }
.ai-md ol { list-style:none; counter-reset:ai; padding-left:0; margin:.5rem 0; }
.ai-md ol li { position:relative; padding-left:1.6rem; margin:.45rem 0; counter-increment:ai; }
.ai-md ol li::before { content:counter(ai); position:absolute; left:0; top:.05em; width:1.15rem; height:1.15rem; display:flex; align-items:center; justify-content:center; font-size:.65rem; font-weight:700; color:#0369a1; background:#e0f2fe; border-radius:9999px; }
.ai-md p { margin:.5rem 0; }
.ai-md p:first-child { margin-top:0; }
.ai-md p:last-child { margin-bottom:0; }
/* Bold spans = data emphasis: subtle highlight chip so key facts pop without shouting */
.ai-md strong { font-weight:600; color:#0f172a; background:linear-gradient(transparent 62%,#fde68a55 62%); padding:0 .05rem; }
.ai-md code { background:#f1f5f9; color:#0f172a; padding:.05rem .3rem; border-radius:5px; font-size:.85em; }

::-webkit-scrollbar { width:9px; height:9px; }
::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:8px; }
::-webkit-scrollbar-thumb:hover { background:#94a3b8; }

/* ===== Reply Studio ===== */
.rs-hero { background:linear-gradient(135deg,#eff9ff,#ffffff 65%); border-color:#e0f2fe; }
.rs-toolbar { background:rgba(255,255,255,.9); backdrop-filter:saturate(1.3) blur(8px); border:1px solid #e2e8f0; border-radius:12px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.rs-progress { height:6px; background:#e2e8f0; border-radius:999px; overflow:hidden; }
.rs-progress > i { display:block; height:100%; width:0; background:linear-gradient(90deg,#38bdf8,#0284c7); border-radius:999px; transition:width .45s cubic-bezier(.4,0,.2,1); }
.rs-card { transition:box-shadow .18s ease, border-color .18s ease; }
.rs-card:hover { box-shadow:0 8px 24px rgba(2,132,199,.09); border-color:#bae6fd; }
.rs-card.rs-sent { border-left:3px solid #22c55e; }
.rs-quote { border-left:3px solid #cbd5e1; background:#f8fafc; border-radius:0 10px 10px 0; }
.rs-plat { display:inline-flex; align-items:center; gap:.35rem; font-size:.7rem; font-weight:600; padding:.12rem .5rem; border-radius:999px; background:#f1f5f9; color:#475569; }
.rs-chip { display:inline-flex; align-items:center; gap:.25rem; font-size:.68rem; font-weight:600; padding:.1rem .5rem; border-radius:999px; }
.rs-text2 { line-height:1.55; resize:vertical; transition:border-color .15s, box-shadow .15s; }
.rs-text2:focus { border-color:#0ea5e9; box-shadow:0 0 0 3px rgba(14,165,233,.16); outline:none; }
.rs-reply-pane { background:linear-gradient(180deg,#fafcff,#ffffff); }

/* ===== Competitor Intel tabs ===== */
.ci-tabbar { display:flex; gap:6px; flex-wrap:wrap; background:#f1f5f9; border:1px solid var(--line-soft); border-radius:14px; padding:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ci-tab { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; padding:10px 16px; font-size:14.5px; font-weight:600; color:#475569; border-radius:10px; transition:background .15s, color .15s, box-shadow .15s; cursor:pointer; }
.ci-tab i { font-size:13px; opacity:.75; }
.ci-tab:hover { background:#fff; color:#0f172a; }
.ci-tab-active, .ci-tab-active:hover { background:#0f172a; color:#fff; box-shadow:0 6px 16px -6px rgba(15,23,42,.45); }
.ci-tab-active i { opacity:1; }
.ci-tab .ci-ai { font-size:9px; font-weight:800; padding:2px 6px; border-radius:5px; background:#e0f2fe; color:#0369a1; letter-spacing:.03em; }
.ci-tab-active .ci-ai { background:rgba(255,255,255,.22); color:#fff; }
/* war-room rank hero */
.ci-hero { display:grid; grid-template-columns:210px 1fr; gap:24px; background:linear-gradient(160deg,#111827,#0b1220); border-radius:22px; padding:24px 26px; color:#fff; box-shadow:var(--shadow-lg); margin-bottom:18px; }
@media(max-width:680px){ .ci-hero{grid-template-columns:1fr} }
.ci-hero-l { display:flex; flex-direction:column; justify-content:center; }
.ci-hero-eyebrow { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#64748b; }
.ci-rank-big { font-size:54px; font-weight:800; letter-spacing:-.04em; line-height:1; margin-top:8px; } .ci-rank-big span { font-size:16px; color:#64748b; font-weight:600; margin-left:8px; }
.ci-rank-sub { font-size:13px; color:#94a3b8; margin-top:10px; } .ci-rank-sub b { color:#fff; }
.ci-ladder { display:flex; flex-direction:column; gap:2px; align-self:center; }
.ci-lad { display:flex; align-items:center; gap:12px; padding:7px 12px; border-radius:10px; }
.ci-lad-me { background:linear-gradient(90deg,rgba(56,189,248,.16),rgba(79,70,229,.10)); box-shadow:inset 0 0 0 1px rgba(56,189,248,.16); }
.ci-lad-rank { width:22px; font-weight:800; color:#64748b; text-align:center; }
.ci-lad-me .ci-lad-rank { color:#38bdf8; }
.ci-lad-name { flex:1; font-weight:600; color:#cbd5e1; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ci-lad-me .ci-lad-name { color:#fff; }
.ci-lad-stars { flex:none; }
.ci-lad-stars .text-slate-600 { color:#cbd5e1 !important; }
.ci-lad-rev { font-size:11px; color:#64748b; width:44px; text-align:right; }

/* ===== Global professional polish ===== */
/* Consistent brand focus ring for form controls that don't set their own. */
input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,
select:focus, textarea:focus { outline:none; box-shadow:0 0 0 3px rgba(14,165,233,.15); }
input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea { transition:border-color .15s, box-shadow .15s; }
/* Tables inside cards read like a clean data grid. */
.card table th { font-weight:600; color:#64748b; }
/* Sidebar nav: premium rounded-pill items (Linear / Vercel feel). */
.nav-item { font-weight:500; }
aside > nav#nav { padding-left:10px; padding-right:10px; }
#nav .nav-item { border-left:none; border-radius:11px; margin-bottom:2px; padding-top:.58rem; padding-bottom:.58rem; }
#nav .nav-item.active { background:linear-gradient(90deg,rgba(56,189,248,.16),rgba(79,70,229,.10)); color:#fff; box-shadow:inset 0 0 0 1px rgba(56,189,248,.16); font-weight:600; }
#nav .nav-item.active i { color:#38bdf8; }
#nav .nav-item:not(.active):hover { background:rgba(255,255,255,.055); }
.nav-group { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; color:#64748b; padding:16px 20px 6px; }
/* Slightly wider, calmer page scrollbar. */
main::-webkit-scrollbar { width:10px; }

/* ===== AI Analyst hub (instant chat) ===== */
.aih-wrap { display:flex; flex-direction:column; height:100%; max-width:820px; margin:0 auto; }
.aih-scroll { flex:1; overflow-y:auto; padding:8px 4px 12px; }

/* ---- AI Analyst — ChatGPT-style shell (sidebar + chat list) ---- */
.aih-shell { display:flex; height:100%; min-height:0; position:relative; }
.aih-sidebar { width:266px; flex:none; display:flex; flex-direction:column; min-height:0; border-right:1px solid var(--line-soft); background:#fbfcfe; }
.aih-side-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:14px 12px 10px; }
.aih-side-title { font-size:13px; font-weight:700; color:#334155; display:inline-flex; align-items:center; gap:7px; }
.aih-side-title i { color:#94a3b8; }
.aih-newchat { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); padding:6px 11px; border-radius:10px; box-shadow:var(--shadow); transition:transform .1s; }
.aih-newchat:hover { transform:translateY(-1px); }
.aih-convs { flex:1; overflow-y:auto; padding:4px 8px 8px; display:flex; flex-direction:column; gap:2px; }
.aih-convs-empty { color:#94a3b8; font-size:12px; text-align:center; padding:26px 12px; line-height:1.7; }
.aih-conv { position:relative; display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:10px; cursor:pointer; transition:background .12s; }
.aih-conv:hover { background:#eef2f7; }
.aih-conv-on, .aih-conv-on:hover { background:#e0f2fe; }
.aih-conv-ic { font-size:12px; color:#94a3b8; flex:none; }
.aih-conv-on .aih-conv-ic { color:#0284c7; }
.aih-conv-ttl { flex:1; min-width:0; font-size:13px; color:#334155; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aih-conv-del { flex:none; width:24px; height:24px; border-radius:7px; display:grid; place-items:center; color:#cbd5e1; opacity:0; transition:opacity .12s, color .12s, background .12s; }
.aih-conv:hover .aih-conv-del { opacity:1; }
.aih-conv-del:hover { color:#e11d48; background:#fee2e2; }
.aih-side-foot { padding:9px 14px; border-top:1px solid var(--line-soft); font-size:11px; color:#94a3b8; display:flex; align-items:center; gap:6px; }
.aih-main { flex:1; min-width:0; min-height:0; display:flex; flex-direction:column; }
.aih-main .aih-wrap { height:auto; flex:1; min-height:0; }
.aih-topbar { display:flex; align-items:center; gap:10px; padding:9px 14px; border-bottom:1px solid var(--line-soft); flex:none; }
.aih-topttl { flex:1; min-width:0; font-size:14px; font-weight:700; color:#1e293b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aih-icobtn { width:34px; height:34px; border-radius:9px; display:grid; place-items:center; color:#64748b; transition:background .12s; }
.aih-icobtn:hover { background:#f1f5f9; color:#0f172a; }
.aih-menu { display:none; }
.aih-scrim { display:none; }
@media (max-width:860px) {
  .aih-sidebar { position:absolute; left:0; top:0; bottom:0; z-index:40; transform:translateX(-100%); transition:transform .2s ease; box-shadow:0 20px 50px -12px rgba(15,23,42,.4); }
  .aih-sidebar-open { transform:translateX(0); }
  .aih-scrim { display:block; position:absolute; inset:0; z-index:39; background:rgba(15,23,42,.34); opacity:0; pointer-events:none; transition:opacity .2s; }
  .aih-scrim-on { opacity:1; pointer-events:auto; }
  .aih-menu { display:grid; }
}
.aih-hero { display:flex; flex-direction:column; align-items:center; text-align:center; padding:7vh 8px 3vh; }
.aih-orb { width:66px; height:66px; border-radius:20px; display:grid; place-items:center; color:#fff; font-size:26px; background:linear-gradient(135deg,#0ea5e9,#4f46e5); box-shadow:0 16px 34px -10px rgba(79,70,229,.55); animation:aih-float 4.5s ease-in-out infinite; }
@keyframes aih-float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }
.aih-title { font-size:clamp(26px,3.4vw,34px); font-weight:800; letter-spacing:-.03em; color:#0f172a; margin-top:20px; }
.aih-sub { color:#64748b; font-size:15px; max-width:540px; margin-top:8px; line-height:1.5; }
.aih-sub b { color:#334155; }
.aih-suggest { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:28px; width:100%; }
@media(max-width:640px){ .aih-suggest{grid-template-columns:1fr} }
.aih-card { display:flex; align-items:flex-start; gap:12px; text-align:left; background:#fff; border:1px solid var(--line-soft); border-radius:16px; padding:14px; box-shadow:var(--shadow); transition:transform .15s, box-shadow .15s, border-color .15s; cursor:pointer; }
.aih-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:#dbeafe; }
.aih-card-ic { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; color:#fff; font-size:15px; flex:none; }
.aih-card-title { display:block; font-weight:700; font-size:14px; color:#0f172a; }
.aih-card-q { display:block; font-size:12.5px; color:#64748b; margin-top:3px; line-height:1.4; }
.aih-thread { display:flex; flex-direction:column; gap:16px; padding:10px 2px 4px; }
.aih-row { display:flex; gap:10px; }
.aih-user { justify-content:flex-end; }
.aih-ubub { background:linear-gradient(135deg,#0284c7,#4f46e5); color:#fff; border-radius:18px 18px 5px 18px; padding:10px 15px; font-size:14px; max-width:80%; box-shadow:0 6px 16px -6px rgba(2,132,199,.45); }
.aih-ai { justify-content:flex-start; }
.aih-av { width:30px; height:30px; border-radius:50%; flex:none; display:grid; place-items:center; color:#fff; font-size:12px; background:linear-gradient(135deg,#0ea5e9,#4f46e5); box-shadow:0 5px 12px -4px rgba(79,70,229,.5); }
.aih-abub { flex:1; min-width:0; max-width:calc(100% - 42px); }
.aih-answer { background:#fff; border:1px solid var(--line-soft); border-radius:18px 18px 18px 6px; padding:15px 17px; box-shadow:var(--shadow); }
.aih-prose { background:#fff; border:1px solid var(--line-soft); border-radius:18px 18px 18px 6px; padding:13px 16px; box-shadow:var(--shadow); }
/* ---- AI Analyst AGENT (charts, confidence, evidence, follow-ups) ---- */
.agent-answer { display:flex; flex-direction:column; gap:12px; max-width:680px; }
.agent-answer .aih-prose { background:transparent; border:none; box-shadow:none; padding:0; }
.agent-chartwrap { position:relative; height:250px; background:#fff; border:1px solid var(--line-soft); border-radius:14px; padding:12px 12px 10px; box-shadow:var(--shadow); }
.agent-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.agent-conf { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; letter-spacing:.01em; }
.agent-conf i { font-size:7px; }
.agent-conf-high { background:#ecfdf5; color:#047857; }
.agent-conf-medium { background:#fffbeb; color:#b45309; }
.agent-conf-low { background:#fef2f2; color:#b91c1c; }
.agent-ev-chip { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600; color:#475569; background:#f1f5f9; border:1px solid #e2e8f0; padding:3px 9px; border-radius:999px; }
.agent-ev-chip i { font-size:9px; color:#94a3b8; }
.agent-follow { display:flex; flex-direction:column; gap:6px; margin-top:2px; }
.agent-fchip { display:inline-flex; align-items:center; gap:9px; text-align:left; font-size:13px; font-weight:600; color:#0369a1; background:#fff; border:1px solid #e0f2fe; border-radius:12px; padding:9px 13px; box-shadow:var(--shadow); transition:transform .1s, border-color .15s, background .15s; }
.agent-fchip:hover { transform:translateX(2px); border-color:#7dd3fc; background:#f0f9ff; }
.agent-fchip i { font-size:11px; color:#38bdf8; flex:none; }
.agent-working { display:inline-flex; align-items:center; gap:11px; }
.agent-working-t { font-size:13px; font-weight:600; color:#64748b; }
.aih-av-live { animation:aih-avpulse 1.6s ease-in-out infinite; }
@keyframes aih-avpulse { 0%,100%{ box-shadow:0 0 0 0 rgba(2,132,199,.35) } 50%{ box-shadow:0 0 0 6px rgba(2,132,199,0) } }
.aih-think { background:#fff; border:1px solid var(--line-soft); border-radius:16px; padding:15px 17px; display:inline-flex; gap:5px; box-shadow:var(--shadow); }
.aih-think span { width:7px; height:7px; border-radius:50%; background:#94a3b8; animation:aih-blink 1.2s infinite; }
.aih-think span:nth-child(2){ animation-delay:.2s } .aih-think span:nth-child(3){ animation-delay:.4s }
@keyframes aih-blink { 0%,80%,100%{opacity:.3;transform:translateY(0)} 40%{opacity:1;transform:translateY(-3px)} }
.aih-composer { padding:10px 2px 2px; }
.aih-inputbar { position:relative; display:flex; align-items:center; background:#fff; border:1.5px solid #e2e8f0; border-radius:16px; padding:5px 5px 5px 42px; box-shadow:var(--shadow-md); transition:border-color .15s, box-shadow .15s; }
.aih-inputbar:focus-within { border-color:#7dd3fc; box-shadow:0 0 0 4px rgba(14,165,233,.14), var(--shadow-md); }
.aih-input-ic { position:absolute; left:15px; color:#94a3b8; font-size:15px; }
.aih-inputbar input { flex:1; border:none; outline:none; background:transparent; font-size:15px; color:#0f172a; padding:9px 4px; }
.aih-send { width:38px; height:38px; border-radius:12px; flex:none; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); box-shadow:0 5px 14px -4px rgba(2,132,199,.5); transition:transform .1s, box-shadow .15s; }
.aih-send:hover { box-shadow:0 7px 18px -4px rgba(2,132,199,.6); }
.aih-send:active { transform:scale(.93); }
.aih-hint { text-align:center; font-size:11.5px; color:#94a3b8; margin-top:9px; }
.aih-hint b { color:#64748b; }

/* ===== Today's Brief (home) ===== */
.tb-wrap { max-width:820px; margin:0 auto; padding:14px 4px 44px; }
.tb-greet { font-size:14px; font-weight:600; color:var(--brand); letter-spacing:.01em; }
.tb-headline { font-size:clamp(28px,4vw,42px); font-weight:800; letter-spacing:-.032em; color:#0f172a; line-height:1.08; margin-top:6px; }
.tb-hl { background:linear-gradient(120deg,#0284c7,#4f46e5); -webkit-background-clip:text; background-clip:text; color:transparent; }
.tb-hero-grid { display:grid; grid-template-columns:1fr 1.45fr; gap:16px; margin-top:28px; }
@media(max-width:720px){ .tb-hero-grid{grid-template-columns:1fr} }
.tb-repcard { background:linear-gradient(160deg,#111827,#0b1220); color:#fff; border-radius:22px; padding:24px; display:flex; flex-direction:column; justify-content:center; box-shadow:var(--shadow-lg); }
.tb-rep-stars { color:#fbbf24; font-size:20px; letter-spacing:3px; }
.tb-rep-num { font-size:46px; font-weight:800; letter-spacing:-.035em; margin-top:8px; line-height:1; }
.tb-rep-label { font-size:12.5px; color:#94a3b8; margin-top:10px; }
.tb-rep-sat { font-size:13px; color:#cbd5e1; margin-top:12px; }
.tb-rep-sat b { color:#fff; font-size:16px; } .tb-rep-sat span { color:#64748b; }
.tb-attn { background:#fff; border:1px solid var(--line-soft); border-radius:22px; padding:24px; box-shadow:var(--shadow); display:flex; flex-direction:column; }
.tb-attn-tag { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#e11d48; background:#fff1f2; padding:5px 11px; border-radius:999px; align-self:flex-start; }
.tb-attn-tag.tb-good-tag { color:#059669; background:#ecfdf5; }
.tb-attn-tag.tb-attn-spike { color:#fff; background:linear-gradient(135deg,#f43f5e,#e11d48); box-shadow:0 6px 16px -6px rgba(225,29,72,.6); }
.tb-updated { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:6px 0 18px; }
.tb-updated-txt { font-size:13px; color:#64748b; display:inline-flex; align-items:center; gap:7px; }
.tb-updated-txt i { color:#10b981; font-size:12px; }
.tb-updated-txt b { color:#0f172a; font-weight:700; }
.tb-update-btn { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:#0369a1; background:#f0f9ff; border:1px solid #bae6fd; border-radius:10px; padding:6px 13px; cursor:pointer; transition:background .15s, transform .1s; }
.tb-update-btn:hover { background:#e0f2fe; transform:translateY(-1px); }
.tb-pulse-hint { font-size:12px; font-weight:500; color:#94a3b8; text-transform:none; letter-spacing:normal; margin-left:6px; }
.tb-pulse { display:flex; align-items:stretch; gap:0; flex-wrap:wrap; margin-top:6px; }
.tb-pulse-cell { flex:1; min-width:130px; }
.tb-pulse-div { width:1px; background:var(--line-soft); align-self:stretch; margin:2px 20px; }
.tb-pulse-lbl { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#94a3b8; }
.tb-pulse-num { font-size:34px; font-weight:800; line-height:1; margin:7px 0 9px; letter-spacing:-.02em; }
.tb-pulse-num small { font-size:14px; font-weight:600; color:#cbd5e1; margin-left:2px; }
.tb-pd { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:700; padding:2px 9px; border-radius:999px; }
.tb-pd-up { background:#ecfdf5; color:#047857; }
.tb-pd-down { background:#fef2f2; color:#b91c1c; }
.tb-pd-flat { background:#f1f5f9; color:#64748b; }
.tb-pulse-meta { font-size:12px; color:#94a3b8; margin-top:9px; }
.tb-pulse-spark { flex:1; min-width:150px; display:flex; flex-direction:column; gap:8px; justify-content:center; }
.tb-spark { width:100%; height:44px; display:block; }
.tb-spark-empty { font-size:12px; color:#94a3b8; }
@media(max-width:640px){ .tb-pulse-div{ display:none } .tb-pulse-cell{ min-width:45% } .tb-pulse-spark{ min-width:100%; margin-top:12px } }
.tb-attn-title { font-size:21px; font-weight:700; color:#0f172a; letter-spacing:-.02em; margin-top:14px; line-height:1.25; }
.tb-attn-sub { font-size:14px; color:#64748b; margin-top:7px; } .tb-attn-sub b { color:#0f172a; }
.tb-attn-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; padding-top:18px; }
.tb-two { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
@media(max-width:720px){ .tb-two{grid-template-columns:1fr} }
.tb-panel { background:#fff; border:1px solid var(--line-soft); border-radius:18px; padding:18px 20px; box-shadow:var(--shadow); }
.tb-panel-h { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; display:flex; align-items:center; gap:7px; }
.tb-good { color:#059669; } .tb-bad { color:#e11d48; }
.tb-list { list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:11px; }
.tb-list li { display:flex; align-items:center; gap:9px; font-size:15px; color:#334155; font-weight:500; }
.tb-score { margin-left:auto; font-size:12px; font-weight:700; padding:2px 8px; border-radius:8px; background:#f1f5f9; color:#475569; }
.tb-score-good { background:#ecfdf5; color:#059669; } .tb-score-bad { background:#fff1f2; color:#e11d48; }
.tb-empty { font-size:13px; color:#94a3b8; margin-top:14px; }
.tb-actions { margin-top:22px; }
.tb-actions-h { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#94a3b8; margin-bottom:11px; }
.tb-act { width:100%; display:flex; align-items:center; gap:14px; text-align:left; background:#fff; border:1px solid var(--line-soft); border-radius:16px; padding:14px 16px; margin-bottom:10px; box-shadow:var(--shadow); transition:transform .12s, box-shadow .15s, border-color .15s; cursor:pointer; }
.tb-act:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); border-color:#dbeafe; }
.tb-act-ic { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; font-size:16px; flex:none; }
.tb-act-body { flex:1; display:flex; flex-direction:column; }
.tb-act-body b { font-size:15px; color:#0f172a; font-weight:700; }
.tb-act-body span { font-size:13px; color:#64748b; margin-top:1px; }
.tb-act-arrow { color:#cbd5e1; }
.tb-reply { cursor:pointer; }
.tb-reply-pills { display:inline-flex; gap:5px; margin-top:7px !important; }
.tb-rp { font-size:11.5px; font-weight:600; color:#64748b; background:#f1f5f9; padding:4px 10px; border-radius:8px; transition:background .12s, color .12s; }
.tb-rp:hover { background:#e2e8f0; }
.tb-rp-on, .tb-rp-on:hover { background:#4f46e5; color:#fff; }
.tb-picker { display:flex; flex-direction:column; gap:10px; margin-top:26px; }
.tb-prop { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line-soft); border-radius:16px; padding:14px 16px; box-shadow:var(--shadow); cursor:pointer; transition:transform .12s, box-shadow .15s; }
.tb-prop:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); }
.tb-prop-name { flex:1; font-weight:700; color:#0f172a; font-size:15px; text-align:left; }

/* ===== Floating Ask AI (companion, every screen) ===== */
.askfab-btn { position:fixed; right:24px; bottom:24px; z-index:55; display:inline-flex; align-items:center; gap:9px; background:linear-gradient(135deg,#0284c7,#4f46e5); color:#fff; border:none; border-radius:999px; padding:12px 18px; font-weight:600; font-size:14px; box-shadow:0 14px 32px -10px rgba(79,70,229,.55); cursor:pointer; transition:transform .12s, box-shadow .15s; }
.askfab-btn:hover { transform:translateY(-2px); box-shadow:0 18px 40px -10px rgba(79,70,229,.65); }
.askfab-btn i { font-size:15px; }
.askfab-back { position:fixed; inset:0; background:rgba(15,23,42,.28); z-index:60; opacity:0; pointer-events:none; transition:opacity .22s; }
.askfab-back.open { opacity:1; pointer-events:auto; }
.askfab-panel { position:fixed; top:0; right:0; height:100%; width:min(440px,100%); background:#f6f8fb; z-index:61; box-shadow:-24px 0 60px -24px rgba(15,23,42,.35); display:flex; flex-direction:column; transform:translateX(102%); transition:transform .3s cubic-bezier(.4,0,.2,1); }
.askfab-panel.open { transform:none; }
.askfab-head { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; background:#fff; border-bottom:1px solid var(--line-soft); }
.askfab-title { display:inline-flex; align-items:center; gap:9px; font-weight:700; color:#0f172a; }
.askfab-av { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:12px; background:linear-gradient(135deg,#0ea5e9,#4f46e5); }
.askfab-actions { display:flex; gap:4px; }
.askfab-actions button { width:32px; height:32px; border-radius:9px; color:#64748b; background:none; border:none; cursor:pointer; transition:background .15s, color .15s; }
.askfab-actions button:hover { background:#f1f5f9; color:#0f172a; }
.askfab-log { flex:1; overflow-y:auto; padding:16px; }
.askfab-composer { padding:12px; background:#fff; border-top:1px solid var(--line-soft); }
.fab-welcome { text-align:center; padding:22px 8px; }
.fab-orb { width:52px; height:52px; border-radius:16px; margin:0 auto; display:grid; place-items:center; color:#fff; font-size:20px; background:linear-gradient(135deg,#0ea5e9,#4f46e5); box-shadow:0 12px 26px -8px rgba(79,70,229,.5); }
.fab-w-title { font-weight:700; color:#0f172a; margin-top:14px; font-size:16px; }
.fab-w-sub { font-size:13px; color:#64748b; margin-top:5px; } .fab-w-sub b { color:#334155; }
.fab-chips { display:flex; flex-direction:column; gap:8px; margin-top:18px; }
.fab-chip { background:#fff; border:1px solid var(--line-soft); border-radius:12px; padding:10px 12px; font-size:13px; color:#334155; text-align:left; box-shadow:var(--shadow-sm); cursor:pointer; transition:border-color .15s, box-shadow .15s, color .15s; }
.fab-chip:hover { border-color:#bae6fd; box-shadow:var(--shadow); color:#0284c7; }
@media(max-width:640px){ .askfab-btn span{display:none} .askfab-btn{padding:14px} }

/* ===== Guest Voice (reviews reimagined) ===== */
.gv-wrap { max-width:940px; margin:0 auto; }
.gv-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.gv-eyebrow { display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--brand); }
.gv-title { font-size:clamp(26px,3.4vw,34px); font-weight:800; letter-spacing:-.03em; color:#0f172a; margin-top:4px; }
.gv-head-actions { display:flex; gap:8px; }
.gv-pulse-wrap { margin-top:22px; }
.gv-pulse { display:grid; grid-template-columns:auto 1fr; gap:22px; background:linear-gradient(160deg,#111827,#0b1220); border-radius:22px; padding:24px 26px; color:#fff; box-shadow:var(--shadow-lg); }
@media(max-width:640px){ .gv-pulse{grid-template-columns:1fr} }
.gv-score { display:flex; align-items:center; gap:18px; }
.gv-ring { width:104px; height:104px; border-radius:50%; background:conic-gradient(#38bdf8 calc(var(--v)*1%), rgba(255,255,255,.10) 0); display:grid; place-items:center; flex:none; }
.gv-ring-in { width:82px; height:82px; border-radius:50%; background:#0b1220; display:grid; place-items:center; text-align:center; }
.gv-ring-num { font-size:30px; font-weight:800; letter-spacing:-.03em; line-height:1; }
.gv-ring-lab { font-size:11px; color:#64748b; }
.gv-stars { color:#fbbf24; font-size:15px; }
.gv-score-sub { font-size:13px; color:#94a3b8; margin-top:8px; } .gv-score-sub b { color:#fff; }
.gv-reply-cta { display:inline-flex; align-items:center; gap:7px; margin-top:12px; background:rgba(255,255,255,.10); color:#fff; border-radius:10px; padding:8px 13px; font-size:13px; font-weight:600; cursor:pointer; border:none; transition:background .15s; }
.gv-reply-cta:hover { background:rgba(255,255,255,.18); }
.gv-themes { border-left:1px solid rgba(255,255,255,.08); padding-left:22px; }
@media(max-width:640px){ .gv-themes{border-left:none;padding-left:0;border-top:1px solid rgba(255,255,255,.08);padding-top:16px} }
.gv-themes-h { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#64748b; margin-bottom:12px; }
.gv-theme { display:flex; align-items:center; gap:10px; margin-bottom:9px; }
.gv-theme-name { font-size:13px; color:#cbd5e1; width:126px; flex:none; }
.gv-bar { flex:1; height:7px; background:rgba(255,255,255,.08); border-radius:999px; overflow:hidden; }
.gv-bar > i { display:block; height:100%; border-radius:999px; }
.gv-theme-score { font-size:12px; font-weight:700; width:26px; text-align:right; }
.gv-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:22px 0 4px; }
.gv-segs { display:inline-flex; gap:4px; background:#eef2f7; padding:4px; border-radius:13px; }
.gv-seg { display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:#64748b; padding:7px 13px; border-radius:10px; cursor:pointer; border:none; background:none; transition:all .15s; }
.gv-seg:hover { color:#0f172a; }
.gv-seg-on { background:#fff; color:#0284c7; box-shadow:var(--shadow-sm); }
.gv-filters { display:flex; gap:8px; align-items:center; }
.gv-search-wrap { position:relative; display:flex; align-items:center; }
.gv-search-wrap i { position:absolute; left:12px; color:#94a3b8; font-size:13px; }
.gv-search-wrap input { border:1px solid #e2e8f0; border-radius:11px; padding:8px 12px 8px 32px; font-size:14px; background:#fff; outline:none; transition:border-color .15s, box-shadow .15s; min-width:170px; }
.gv-search-wrap input:focus { border-color:#7dd3fc; box-shadow:0 0 0 3px rgba(14,165,233,.14); }
.gv-select { border:1px solid #e2e8f0; border-radius:11px; padding:8px 12px; font-size:14px; background:#fff; }
.gv-count { font-size:12.5px; color:#94a3b8; margin:16px 0 12px; font-weight:600; }
.gv-feed-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:760px){ .gv-feed-grid{grid-template-columns:1fr} }
.gv-card { background:#fff; border:1px solid var(--line-soft); border-radius:18px; padding:18px; box-shadow:var(--shadow); transition:box-shadow .15s, border-color .15s, transform .12s; }
.gv-card:hover { box-shadow:var(--shadow-md); border-color:#dbeafe; transform:translateY(-1px); }
.gv-card.gv-urgent { border-color:#fecaca; }
.gv-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.gv-guest { display:flex; align-items:center; gap:10px; }
.gv-av { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; font-weight:700; color:#fff; background:linear-gradient(135deg,#0ea5e9,#6366f1); flex:none; }
.gv-name { font-weight:700; font-size:14.5px; color:#0f172a; }
.gv-meta { font-size:12px; color:#94a3b8; display:flex; align-items:center; gap:5px; margin-top:1px; }
.gv-trans { color:#0284c7; font-weight:600; }
.gv-prop { color:#0284c7; font-weight:700; }
.gv-hotelav { flex:none; display:inline-flex; }
.gv-hotelav img, .gv-hotelav span { border-radius:11px !important; }
.gv-rating { color:#fbbf24; font-size:13px; flex:none; }
.gv-ai-read { display:flex; gap:8px; align-items:flex-start; font-size:13px; color:#4338ca; background:linear-gradient(90deg,#eef2ff,#faf5ff); border:1px solid #e0e7ff; border-radius:12px; padding:9px 12px; margin-top:13px; line-height:1.4; }
.gv-ai-read i { margin-top:2px; }
.gv-body { font-size:14px; color:#475569; line-height:1.55; margin-top:12px; white-space:pre-line; }
.gv-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:13px; }
.gv-tag { font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px; background:#f1f5f9; color:#475569; }
.gv-tag-pos { background:#ecfdf5; color:#059669; } .gv-tag-neg { background:#fff1f2; color:#e11d48; } .gv-tag-neu { background:#f1f5f9; color:#64748b; }
.gv-tag-urgent { background:#fef3c7; color:#b45309; }
.gv-replied { font-size:13px; color:#475569; background:#f8fafc; border-left:3px solid #22c55e; border-radius:0 10px 10px 0; padding:9px 12px; margin-top:14px; }
.gv-replied b { color:#0f172a; }
.gv-actions { display:flex; gap:8px; margin-top:14px; }
.gv-btn { display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:600; padding:8px 13px; border-radius:11px; cursor:pointer; border:none; transition:all .15s; text-decoration:none; }
.gv-gen { background:linear-gradient(135deg,#0284c7,#4f46e5); color:#fff; box-shadow:0 4px 12px -4px rgba(2,132,199,.4); }
.gv-gen:hover { box-shadow:0 6px 16px -4px rgba(2,132,199,.5); }
.gv-ghost { background:#f1f5f9; color:#334155; }
.gv-ghost:hover { background:#e8edf4; }
.gv-draft { margin-top:12px; background:#f8fafc; border:1px solid #e0e7ff; border-radius:13px; padding:12px 14px; }
.gv-draft-h { display:flex; align-items:center; justify-content:space-between; font-size:11.5px; font-weight:700; color:#4338ca; margin-bottom:6px; }
.gv-draft-h .gv-copy { font-size:11.5px; color:#0284c7; background:none; border:none; cursor:pointer; font-weight:600; }
.gv-draft p { font-size:13.5px; color:#334155; line-height:1.5; white-space:pre-line; }

/* ===== Reply Flow (reply studio reimagined) ===== */
.rf-wrap { display:flex; flex-direction:column; height:100%; }
.rf-top { display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:#fff; border:1px solid var(--line-soft); border-radius:16px; padding:12px 16px; box-shadow:var(--shadow); }
.rf-top-l { display:flex; align-items:center; gap:10px; }
.rf-eyebrow { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); padding:4px 9px; border-radius:8px; }
.rf-scope { font-weight:700; color:#0f172a; font-size:14px; }
.rf-top-c { display:flex; gap:12px; flex-wrap:wrap; }
.rf-field { display:flex; flex-direction:column; gap:3px; }
.rf-field > span { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#94a3b8; padding-left:2px; }
.rf-sel { border:1px solid #e2e8f0; border-radius:10px; padding:7px 10px; font-size:13px; background:#fff; color:#334155; cursor:pointer; }
.rf-genbtn { margin-left:auto; display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); border-radius:12px; padding:10px 18px; box-shadow:0 8px 20px -6px rgba(2,132,199,.5); cursor:pointer; transition:transform .1s, box-shadow .15s; }
.rf-genbtn:hover { transform:translateY(-1px); } .rf-genbtn:disabled { opacity:.7; cursor:default; transform:none; }
.rf-status { display:flex; align-items:center; justify-content:space-between; gap:10px 20px; flex-wrap:wrap; padding:12px 4px 14px; }
.rf-status-main { font-size:14px; color:#475569; } .rf-status-main b { color:#0f172a; font-weight:800; }
.rf-status-chips { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rf-sc { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; padding:4px 10px; border-radius:999px; }
.rf-sc i { font-size:8px; }
.rf-sc-todo { background:#f1f5f9; color:#64748b; } .rf-sc-todo i { color:#cbd5e1; }
.rf-sc-draft { background:#eef2ff; color:#4338ca; } .rf-sc-draft i { color:#6366f1; }
.rf-sc-posted { background:#ecfdf5; color:#047857; } .rf-sc-posted i { color:#10b981; }
.rf-sc-showing { font-size:12px; color:#94a3b8; font-weight:600; margin-left:4px; }
.rf-body { flex:1; min-height:0; display:grid; grid-template-columns:250px 1fr; gap:16px; }
@media(max-width:820px){ .rf-body{grid-template-columns:1fr} .rf-rail{display:none} }
.rf-rail { overflow-y:auto; padding-right:2px; }
.rf-rail-h { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#94a3b8; padding:4px 6px 10px; } .rf-rail-h b { color:#0284c7; }
.rf-rail-empty { display:flex; flex-direction:column; align-items:center; gap:8px; font-size:13px; color:#94a3b8; padding:30px 6px; text-align:center; }
.rf-rail-empty i { font-size:22px; color:#cbd5e1; }
.rf-qi { width:100%; display:flex; align-items:center; gap:10px; text-align:left; background:#fff; border:1px solid var(--line-soft); border-radius:12px; padding:10px 12px; margin-bottom:7px; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.rf-qi:hover { border-color:#bae6fd; }
.rf-qi-on { border-color:#0ea5e9; box-shadow:0 0 0 3px rgba(14,165,233,.14); }
.rf-qi-posted { opacity:.62; }
.rf-qi-body { flex:1; min-width:0; display:flex; flex-direction:column; }
.rf-qi-name { font-size:13.5px; font-weight:600; color:#0f172a; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rf-qi-meta { font-size:11px; color:#94a3b8; }
.rf-mk-todo { width:9px; height:9px; border-radius:50%; background:#cbd5e1; flex:none; }
.rf-qi-on .rf-mk-todo { background:#0ea5e9; }
.rf-mk-draft { color:#6366f1; font-size:12px; flex:none; }
.rf-mk-posted { color:#22c55e; font-size:14px; flex:none; }
.rf-more { width:100%; display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:12.5px; font-weight:700; color:#0369a1; background:#f0f9ff; border:1px dashed #bae6fd; border-radius:12px; padding:10px; margin-top:4px; cursor:pointer; }
.rf-more:hover { background:#e0f2fe; } .rf-more span { color:#7dd3fc; font-weight:600; }
.rf-gen1 { margin-top:18px; text-align:center; padding:24px 16px; border:1.5px dashed #e2e8f0; border-radius:16px; }
.rf-gen1-btn { display:inline-flex; align-items:center; gap:9px; font-size:15px; font-weight:700; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); border-radius:13px; padding:12px 22px; box-shadow:0 8px 20px -6px rgba(2,132,199,.5); cursor:pointer; transition:transform .1s; }
.rf-gen1-btn:hover { transform:translateY(-1px); }
.rf-gen1 p { font-size:12.5px; color:#94a3b8; margin:10px auto 0; max-width:46ch; line-height:1.5; }
.rf-stage { overflow-y:auto; }
.rf-card { background:#fff; border:1px solid var(--line-soft); border-radius:20px; padding:24px; box-shadow:var(--shadow-md); max-width:720px; margin:0 auto; }
.rf-card-h { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.rf-guest { display:flex; align-items:center; gap:11px; }
.rf-av { width:42px; height:42px; border-radius:13px; display:grid; place-items:center; font-weight:700; color:#fff; background:linear-gradient(135deg,#0ea5e9,#6366f1); flex:none; }
.rf-name { font-weight:700; font-size:16px; color:#0f172a; }
.rf-meta { font-size:12.5px; color:#94a3b8; display:flex; align-items:center; gap:6px; margin-top:2px; }
.rf-lang { color:#0284c7; font-weight:600; }
.rf-pos { font-size:20px; font-weight:800; color:#0f172a; letter-spacing:-.02em; } .rf-pos span { font-size:13px; color:#cbd5e1; font-weight:600; }
.rf-review { background:#f8fafc; border-radius:14px; padding:16px; margin-top:16px; }
.rf-stars { color:#fbbf24; font-size:15px; }
.rf-review-body { font-size:14.5px; color:#334155; line-height:1.6; margin-top:8px; white-space:pre-line; }
.rf-reply { margin-top:18px; }
.rf-reply-h { display:flex; align-items:center; justify-content:space-between; font-size:12px; font-weight:700; color:#4338ca; margin-bottom:8px; }
.rf-reply-h .rf-wc { color:#94a3b8; font-weight:500; }
.rf-text { width:100%; min-height:150px; border:1.5px solid #e2e8f0; border-radius:14px; padding:14px 16px; font-size:15px; line-height:1.6; color:#0f172a; font-family:inherit; resize:vertical; outline:none; transition:border-color .15s, box-shadow .15s; }
.rf-text:focus { border-color:#7dd3fc; box-shadow:0 0 0 4px rgba(14,165,233,.14); }
.rf-actions { display:flex; align-items:center; gap:10px; margin-top:16px; flex-wrap:wrap; }
.rf-post { display:inline-flex; align-items:center; gap:8px; font-size:15px; font-weight:700; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); border:none; border-radius:13px; padding:12px 20px; cursor:pointer; box-shadow:0 8px 20px -6px rgba(2,132,199,.5); transition:transform .1s, box-shadow .15s; }
.rf-post:hover { box-shadow:0 12px 26px -6px rgba(2,132,199,.6); } .rf-post:active { transform:translateY(1px); }
.rf-regen, .rf-copy { display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:600; color:#334155; background:#f1f5f9; border:none; border-radius:12px; padding:11px 15px; cursor:pointer; transition:background .15s; }
.rf-regen:hover, .rf-copy:hover { background:#e8edf4; }
.rf-copy { padding:11px 13px; }
.rf-kbd { margin-left:auto; font-size:11.5px; color:#cbd5e1; }
.rf-empty { text-align:center; max-width:440px; margin:8vh auto 0; }
.rf-empty-orb { width:66px; height:66px; border-radius:20px; margin:0 auto; display:grid; place-items:center; color:#fff; font-size:26px; background:linear-gradient(135deg,#0ea5e9,#4f46e5); box-shadow:0 16px 34px -10px rgba(79,70,229,.5); }
.rf-orb-done { background:linear-gradient(135deg,#10b981,#0d9488); box-shadow:0 16px 34px -10px rgba(16,185,129,.5); }
.rf-empty h2 { font-size:24px; font-weight:800; letter-spacing:-.02em; color:#0f172a; margin-top:18px; }
.rf-empty p { font-size:15px; color:#64748b; margin-top:8px; line-height:1.55; } .rf-empty p b { color:#334155; }
.rf-done p { margin-bottom:18px; }

/* ===== F&B Command (F&B manager reimagined) ===== */
.fb-wrap { max-width:960px; margin:0 auto; }
.fb-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.fb-hero { display:grid; grid-template-columns:auto 1fr; gap:26px; background:linear-gradient(160deg,#111827,#0b1220); border-radius:22px; padding:26px; color:#fff; box-shadow:var(--shadow-lg); margin-top:20px; }
@media(max-width:680px){ .fb-hero{grid-template-columns:1fr} }
.fb-score { display:flex; align-items:center; gap:20px; }
.fb-ring { width:118px; height:118px; border-radius:50%; background:conic-gradient(var(--c) calc(var(--v)*1%), rgba(255,255,255,.09) 0); display:grid; place-items:center; flex:none; }
.fb-ring-in { width:94px; height:94px; border-radius:50%; background:#0b1220; display:grid; place-items:center; text-align:center; }
.fb-ring-num { font-size:34px; font-weight:800; letter-spacing:-.03em; line-height:1; }
.fb-ring-lab { font-size:11px; color:#64748b; }
.fb-score-title { font-size:18px; font-weight:700; display:flex; align-items:center; gap:8px; }
.fb-delta { font-size:12px; font-weight:700; padding:2px 8px; border-radius:8px; }
.fb-up { color:#34d399; } .fb-down { color:#fb7185; }
.fb-delta.fb-up { background:rgba(52,211,153,.14); } .fb-delta.fb-down { background:rgba(251,113,133,.14); }
.fb-score-sub { font-size:13px; color:#94a3b8; margin-top:6px; }
.fb-improve { font-size:12.5px; color:#cbd5e1; margin-top:10px; } .fb-improve b { color:#fff; }
.fb-pillars { align-self:center; }
.fb-pillar { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.fb-pillar-n { font-size:12.5px; color:#cbd5e1; width:118px; flex:none; }
.fb-pillar-s { font-size:12px; font-weight:700; width:26px; text-align:right; }
.fb-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
@media(max-width:680px){ .fb-grid{grid-template-columns:1fr} }
.fb-panel { background:#fff; border:1px solid var(--line-soft); border-radius:18px; padding:18px 20px; box-shadow:var(--shadow); }
.fb-panel-h { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; display:flex; align-items:center; gap:7px; }
.fb-list { list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:11px; }
.fb-list li { display:flex; align-items:center; gap:8px; font-size:14px; min-width:0; }
.fb-li-name { font-weight:600; color:#334155; flex:none; }
.fb-li-ex { font-size:12px; color:#94a3b8; font-style:italic; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fb-li-count { margin-left:auto; font-size:12px; font-weight:700; color:#64748b; background:#f1f5f9; padding:2px 8px; border-radius:8px; flex:none; }
.fb-li-count.fb-neg { background:#fff1f2; color:#e11d48; }
.fb-section-h { font-size:13px; font-weight:700; color:#0f172a; margin:26px 0 12px; display:flex; align-items:center; gap:8px; }
.fb-badge { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#7c3aed; background:#f5f3ff; padding:3px 8px; border-radius:6px; }
.fb-outlets { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:680px){ .fb-outlets{grid-template-columns:1fr} }
.fb-outlet { background:#fff; border:1px solid var(--line-soft); border-radius:16px; padding:16px; box-shadow:var(--shadow); }
.fb-outlet-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:9px; gap:8px; }
.fb-outlet-name { font-weight:700; color:#0f172a; font-size:14.5px; }
.fb-outlet-score { font-size:15px; font-weight:800; display:flex; align-items:center; gap:6px; flex:none; }
.fb-outlet-score .fb-up, .fb-outlet-score .fb-down { font-size:11px; }
.fb-outlet-issue { font-size:12.5px; color:#e11d48; margin-top:10px; display:flex; gap:6px; line-height:1.4; }
.fb-outlet-ok { font-size:12.5px; color:#059669; margin-top:10px; display:flex; gap:6px; }
.fb-phantom { background:#fff; border:1px solid var(--line-soft); border-radius:18px; box-shadow:var(--shadow); overflow:hidden; }
.fb-ph-log { max-height:380px; overflow-y:auto; padding:16px; }
.fb-ph-welcome { text-align:center; padding:20px 12px; }
.fb-ph-orb { width:48px; height:48px; border-radius:14px; margin:0 auto 12px; display:grid; place-items:center; color:#fff; font-size:19px; background:linear-gradient(135deg,#7c3aed,#4f46e5); }
.fb-ph-welcome p { font-size:14px; color:#475569; max-width:400px; margin:0 auto; line-height:1.5; }
.fb-ph-chips { display:flex; flex-direction:column; gap:8px; margin:16px auto 0; max-width:420px; }
.fb-ph-chip { background:#faf5ff; border:1px solid #ede9fe; border-radius:12px; padding:9px 12px; font-size:13px; color:#6d28d9; cursor:pointer; text-align:left; transition:border-color .15s; }
.fb-ph-chip:hover { border-color:#c4b5fd; }
.fb-phantom .aih-inputbar { margin:0 12px 12px; }
.fb-phantom .aih-av { background:linear-gradient(135deg,#7c3aed,#4f46e5); }

/* ===== Issue Analysis (what's going wrong) ===== */
.cl-hero { display:grid; grid-template-columns:auto 1fr; gap:26px; background:linear-gradient(160deg,#1c1917,#0c0a09); border-radius:22px; padding:24px 26px; color:#fff; box-shadow:var(--shadow-lg); margin-bottom:18px; }
@media(max-width:640px){ .cl-hero{grid-template-columns:1fr} }
.cl-hero-l { display:flex; flex-direction:column; justify-content:center; min-width:150px; }
.cl-hero-eyebrow { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#fb7185; }
.cl-hero-num { font-size:52px; font-weight:800; letter-spacing:-.03em; line-height:1; margin-top:8px; } .cl-hero-num span { font-size:16px; color:#78716c; font-weight:600; }
.cl-hero-sub { font-size:12.5px; color:#a8a29e; margin-top:10px; }
.cl-hero-top { align-self:center; background:rgba(251,113,133,.10); border:1px solid rgba(251,113,133,.20); border-radius:16px; padding:16px 18px; }
.cl-hero-top-lab { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#fb7185; }
.cl-hero-top-name { font-size:19px; font-weight:700; color:#fff; margin-top:6px; letter-spacing:-.01em; line-height:1.25; }
.cl-hero-top-meta { font-size:12.5px; color:#a8a29e; margin-top:5px; text-transform:capitalize; }
.cl-section-h { font-size:13px; font-weight:700; color:#0f172a; margin:22px 0 12px; display:flex; align-items:center; gap:10px; }
.cl-hint { font-size:11px; font-weight:500; color:#94a3b8; text-transform:none; letter-spacing:0; }
.cl-priorities { display:flex; flex-direction:column; gap:8px; }
.cl-prio { display:flex; align-items:center; gap:14px; width:100%; text-align:left; background:#fff; border:1px solid var(--line-soft); border-radius:14px; padding:14px 16px; cursor:pointer; box-shadow:var(--shadow); transition:transform .12s, box-shadow .15s, border-color .15s; }
.cl-prio:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); border-color:#fecaca; }
.cl-prio-rank { font-size:16px; font-weight:800; color:#cbd5e1; width:32px; flex:none; }
.cl-prio-body { flex:1; display:flex; flex-direction:column; min-width:0; }
.cl-prio-name { font-size:15px; font-weight:700; color:#0f172a; }
.cl-prio-meta { font-size:12.5px; color:#64748b; margin-top:1px; text-transform:capitalize; }
.cl-prio-sev { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:4px 9px; border-radius:999px; flex:none; }
.cl-sev-urgent { background:#fee2e2; color:#b91c1c; } .cl-sev-high { background:#ffedd5; color:#c2410c; } .cl-sev-medium { background:#fef3c7; color:#b45309; } .cl-sev-low { background:#f1f5f9; color:#64748b; }
/* unified ranked issue list + department filter pills */
.ci2-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.ci2-pill { display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:#475569; background:#fff; border:1px solid var(--line-soft); border-radius:999px; padding:7px 14px; cursor:pointer; box-shadow:var(--shadow-sm); transition:all .15s; }
.ci2-pill span { font-size:11px; font-weight:700; color:#94a3b8; background:#f1f5f9; border-radius:999px; padding:1px 7px; }
.ci2-pill:hover { border-color:#cbd5e1; color:#0f172a; }
.ci2-pill-on { background:#0f172a; color:#fff; border-color:#0f172a; }
.ci2-pill-on span { background:rgba(255,255,255,.16); color:#fff; }
.ci2-list { display:flex; flex-direction:column; gap:10px; }
.ci2-issue { display:flex; align-items:stretch; width:100%; text-align:left; background:#fff; border:1px solid var(--line-soft); border-radius:16px; overflow:hidden; cursor:pointer; box-shadow:var(--shadow); transition:transform .12s, box-shadow .15s, border-color .15s; }
.ci2-issue:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); border-color:#dbeafe; }
.ci2-sev { width:5px; flex:none; }
.ci2-bg-urgent { background:#ef4444; } .ci2-bg-high { background:#f97316; } .ci2-bg-medium { background:#f59e0b; } .ci2-bg-low { background:#cbd5e1; }
.ci2-issue-main { flex:1; min-width:0; padding:15px 16px; }
.ci2-issue-top { display:flex; align-items:center; gap:10px; }
.ci2-issue-name { font-size:15px; font-weight:700; color:#0f172a; }
.ci2-tag { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:3px 8px; border-radius:999px; flex:none; }
.ci2-t-urgent { background:#fee2e2; color:#b91c1c; } .ci2-t-high { background:#ffedd5; color:#c2410c; } .ci2-t-medium { background:#fef3c7; color:#b45309; } .ci2-t-low { background:#f1f5f9; color:#64748b; }
.ci2-issue-quote { font-size:13px; color:#64748b; font-style:italic; margin-top:6px; line-height:1.45; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.ci2-issue-meta { margin-top:8px; }
.ci2-dep { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:#475569; background:#f1f5f9; border-radius:8px; padding:3px 9px; }
.ci2-issue-count { flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 18px; border-left:1px solid var(--line-soft); background:#f8fafc; font-size:22px; font-weight:800; color:#0f172a; letter-spacing:-.02em; }
.ci2-issue-count small { font-size:10px; font-weight:600; color:#94a3b8; text-transform:uppercase; letter-spacing:.04em; margin-top:2px; }
.ci2-issue-arrow { align-self:center; color:#cbd5e1; padding-right:16px; }
@media(max-width:560px){ .ci2-issue-count{padding:0 12px} }

/* =====================================================================
   RECOGNITION (Staff) — 2028 AI-platform look
   ===================================================================== */
.stf-hero { display:grid; grid-template-columns:1fr 300px; gap:26px; background:linear-gradient(160deg,#111827,#0b1220); border-radius:22px; padding:26px 28px; color:#fff; box-shadow:var(--shadow-lg); margin-bottom:18px; }
@media(max-width:760px){ .stf-hero{ grid-template-columns:1fr } }
.stf-hero-l { display:flex; flex-direction:column; }
.stf-eyebrow { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#f0abfc; }
.stf-title { font-size:30px; font-weight:800; line-height:1.05; margin:10px 0 8px; color:#fff; letter-spacing:-.02em; }
.stf-sub { font-size:14px; color:#94a3b8; max-width:54ch; line-height:1.55; }
.stf-chips { display:flex; gap:26px; margin:18px 0 16px; }
.stf-chip { display:flex; flex-direction:column; }
.stf-chip b { font-size:24px; font-weight:800; color:#fff; line-height:1; }
.stf-chip span { font-size:11px; color:#94a3b8; text-transform:uppercase; letter-spacing:.05em; margin-top:4px; }
.stf-scan-note { align-self:flex-start; display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:#fde68a; background:rgba(251,191,36,.12); border:1px solid rgba(251,191,36,.25); padding:8px 13px; border-radius:11px; transition:background .15s; cursor:pointer; }
.stf-scan-note:hover { background:rgba(251,191,36,.2); }
.stf-scan-ghost { color:#cbd5e1; background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12); }
.stf-scan-ghost:hover { background:rgba(255,255,255,.12); }
.stf-hero-r { display:flex; }
.stf-champ { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:18px; padding:20px; }
.stf-champ-badge { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#fbbf24; margin-bottom:14px; display:inline-flex; gap:6px; align-items:center; }
.stf-champ-av { width:78px; height:78px; border-radius:50%; display:grid; place-items:center; font-size:28px; font-weight:800; color:#fff; background:var(--c); box-shadow:0 0 0 4px rgba(255,255,255,.1), 0 12px 26px -8px var(--c); }
.stf-champ-name { font-size:18px; font-weight:800; color:#fff; margin-top:13px; }
.stf-champ-role { font-size:12px; color:#94a3b8; margin-top:3px; }
.stf-champ-stat { font-size:12.5px; color:#cbd5e1; margin-top:11px; }
.stf-champ-stat b { color:#fff; }
.stf-champ-empty { color:#64748b; gap:10px; }
.stf-champ-empty i { font-size:30px; margin-bottom:6px; }
.stf-board-head { display:flex; align-items:center; justify-content:space-between; margin:2px 2px 12px; gap:12px; flex-wrap:wrap; }
.stf-board-ttl { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.stf-sorts { display:flex; gap:6px; }
.stf-sort { font-size:12.5px; font-weight:600; color:var(--muted); background:#f1f5f9; padding:6px 12px; border-radius:9px; transition:background .12s, color .12s; cursor:pointer; }
.stf-sort:hover { background:#e2e8f0; }
.stf-sort-on, .stf-sort-on:hover { background:var(--ink); color:#fff; }
.stf-rows { display:flex; flex-direction:column; gap:8px; }
.stf-row { width:100%; display:flex; align-items:center; gap:14px; text-align:left; background:#fff; border:1px solid var(--line-soft); border-radius:15px; padding:13px 16px; box-shadow:var(--shadow); transition:transform .12s, box-shadow .15s, border-color .15s; cursor:pointer; }
.stf-row:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); border-color:#e9d5ff; }
.stf-rank { width:22px; text-align:center; font-size:14px; font-weight:800; color:#cbd5e1; flex:none; }
.stf-av { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; font-size:15px; font-weight:800; color:#fff; background:var(--c); flex:none; }
.stf-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; }
.stf-name { font-size:14.5px; font-weight:700; color:var(--ink); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.stf-role { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#7c3aed; background:#f5f3ff; padding:2px 7px; border-radius:6px; }
.stf-bar { display:block; height:5px; border-radius:3px; background:#fee2e2; overflow:hidden; max-width:230px; }
.stf-bar-pos { display:block; height:100%; background:#10b981; border-radius:3px; }
.stf-meta { font-size:11.5px; color:var(--muted); }
.stf-pos { color:#059669; font-weight:700; }
.stf-neg { color:#e11d48; font-weight:700; }
.stf-hotel { display:inline-flex; align-items:center; gap:6px; margin-top:5px; font-size:11.5px; color:#475569; font-weight:600; }
.stf-hotel-nm { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.stf-hotel-more { font-size:10px; font-weight:700; color:#64748b; background:#e2e8f0; border-radius:6px; padding:1px 5px; }
.stf-champ-hotel { display:inline-flex; align-items:center; gap:6px; margin-top:8px; font-size:12px; color:#cbd5e1; font-weight:600; }
.stf-big { flex:none; text-align:right; font-size:24px; font-weight:800; line-height:1; display:flex; flex-direction:column; align-items:flex-end; }
.stf-big small { font-size:10px; font-weight:600; color:#94a3b8; text-transform:uppercase; letter-spacing:.04em; margin-top:3px; }
.stf-chev { color:#cbd5e1; font-size:12px; flex:none; }
.stf-empty { margin-top:8px; }
.stf-edit { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; padding:12px 20px; background:#f8fafc; border-bottom:1px solid var(--line-soft); }
.stf-edit-lbl { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#7c3aed; display:inline-flex; align-items:center; gap:6px; }
.stf-edit-field { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:#475569; }
.stf-edit-field select { border:1px solid var(--line); border-radius:8px; padding:4px 8px; font-size:13px; background:#fff; cursor:pointer; }

/* Investigate-department evidence modal (dashboard) */
.de-ov { position:fixed; inset:0; z-index:60; background:rgba(15,23,42,.5); backdrop-filter:blur(3px); display:flex; align-items:flex-start; justify-content:center; padding:5vh 16px; overflow-y:auto; }
.de-modal { width:100%; max-width:680px; background:#fff; border-radius:20px; box-shadow:var(--shadow-lg); overflow:hidden; display:flex; flex-direction:column; max-height:90vh; }
.de-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:18px 22px; border-bottom:1px solid var(--line-soft); flex:none; }
.de-head-ttl { font-size:16px; font-weight:800; color:var(--ink); display:flex; align-items:center; gap:9px; }
.de-head-sub { font-size:12.5px; color:var(--muted); margin-top:3px; }
.de-score { font-size:12px; font-weight:800; padding:2px 9px; border-radius:999px; }
.de-score-good { background:#ecfdf5; color:#047857; } .de-score-mid { background:#fffbeb; color:#b45309; } .de-score-bad { background:#fef2f2; color:#b91c1c; }
.de-close, .de-close2 { width:34px; height:34px; border-radius:9px; display:grid; place-items:center; color:#94a3b8; flex:none; }
.de-close:hover, .de-close2:hover { background:#f1f5f9; color:#0f172a; }
.de-body { padding:16px 22px; overflow-y:auto; flex:1; }
.de-sec { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin:16px 0 10px; }
.de-sec:first-child { margin-top:2px; }
.de-sec span { font-weight:800; background:#f1f5f9; color:#64748b; border-radius:999px; padding:1px 8px; font-size:11px; }
.de-sec-neg { color:#e11d48; } .de-sec-pos { color:#059669; }
.de-rev { border:1px solid var(--line-soft); border-radius:14px; padding:12px 14px; margin-bottom:9px; }
.de-neg { border-left:3px solid #f43f5e; } .de-pos { border-left:3px solid #10b981; }
.de-rev-top { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.de-asp { width:22px; height:22px; border-radius:6px; display:grid; place-items:center; font-size:10px; }
.de-asp-neg { background:#fff1f2; color:#e11d48; } .de-asp-pos { background:#ecfdf5; color:#059669; }
.de-rev-rating { font-size:12px; font-weight:700; color:#b45309; }
.de-rev-date { font-size:11.5px; color:#94a3b8; margin-left:auto; }
.de-rev-body { font-size:13.5px; color:#334155; line-height:1.55; }
.de-rev-note { font-size:11px; color:#94a3b8; margin-top:5px; }
.de-empty { text-align:center; color:#64748b; padding:26px 12px; font-size:13.5px; line-height:1.5; }
.de-empty i { color:#10b981; margin-right:6px; }
.de-foot { display:flex; gap:9px; padding:14px 22px; border-top:1px solid var(--line-soft); flex-wrap:wrap; flex:none; }
.de-foot-btn { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); padding:9px 15px; border-radius:11px; cursor:pointer; }
.de-foot-ghost { color:var(--text); background:#f1f5f9; }

/* =====================================================================
   GUEST DNA (Segments) — 2028 AI-platform look
   ===================================================================== */
.sg-hero { display:grid; grid-template-columns:1fr 280px; gap:26px; background:linear-gradient(160deg,#111827,#0b1220); border-radius:22px; padding:26px 28px; color:#fff; box-shadow:var(--shadow-lg); margin-bottom:16px; }
@media(max-width:760px){ .sg-hero{ grid-template-columns:1fr } }
.sg-hero-l { display:flex; flex-direction:column; }
.sg-eyebrow { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#7dd3fc; }
.sg-title { font-size:29px; font-weight:800; line-height:1.08; margin:10px 0 8px; color:#fff; letter-spacing:-.02em; }
.sg-sub { font-size:14px; color:#94a3b8; max-width:56ch; line-height:1.55; }
.sg-chips { display:flex; gap:26px; margin:18px 0 16px; }
.sg-chip { display:flex; flex-direction:column; }
.sg-chip b { font-size:24px; font-weight:800; color:#fff; line-height:1; }
.sg-chip span { font-size:11px; color:#94a3b8; text-transform:uppercase; letter-spacing:.05em; margin-top:4px; }
.sg-scan-note { align-self:flex-start; display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:#fde68a; background:rgba(251,191,36,.12); border:1px solid rgba(251,191,36,.25); padding:8px 13px; border-radius:11px; transition:background .15s; cursor:pointer; }
.sg-scan-note:hover { background:rgba(251,191,36,.2); }
.sg-scan-ghost { color:#cbd5e1; background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12); }
.sg-scan-ghost:hover { background:rgba(255,255,255,.12); }
.sg-hero-r { display:flex; }
.sg-spot { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:18px; padding:20px; }
.sg-spot-badge { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--c); margin-bottom:13px; display:inline-flex; gap:6px; align-items:center; filter:brightness(1.4); }
.sg-spot-ic { width:64px; height:64px; border-radius:18px; display:grid; place-items:center; font-size:26px; color:#fff; background:var(--c); box-shadow:0 12px 26px -8px var(--c); }
.sg-spot-name { font-size:18px; font-weight:800; color:#fff; margin-top:13px; }
.sg-spot-meta { font-size:12.5px; color:#cbd5e1; margin-top:6px; }
.sg-spot-empty { color:#64748b; gap:10px; }
.sg-spot-empty i { font-size:30px; margin-bottom:6px; }
.sg-filter { display:flex; flex-wrap:wrap; align-items:center; gap:10px 26px; background:#fff; border:1px solid var(--line-soft); border-radius:16px; padding:12px 16px; box-shadow:var(--shadow); margin-bottom:16px; }
.sg-filter-group { display:flex; align-items:center; gap:10px; }
.sg-filter-lbl { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#94a3b8; display:inline-flex; align-items:center; gap:6px; }
.sg-pills { display:flex; flex-wrap:wrap; gap:6px; }
.sg-pill { font-size:12.5px; font-weight:600; color:var(--text); background:#f1f5f9; padding:6px 12px; border-radius:9px; transition:background .12s, color .12s; cursor:pointer; }
.sg-pill:hover { background:#e2e8f0; }
.sg-pill-sq { padding:6px 10px; min-width:42px; text-align:center; }
.sg-pill-on, .sg-pill-on:hover { background:var(--ink); color:#fff; }
.sg-bars { background:#fff; border:1px solid var(--line-soft); border-radius:18px; padding:18px 20px; box-shadow:var(--shadow); margin-bottom:8px; }
.sg-bars-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.sg-bars-ttl { font-size:14px; font-weight:800; color:var(--ink); display:inline-flex; align-items:center; gap:8px; }
.sg-bars-ttl i { color:#0284c7; }
.sg-bars-note { font-size:11.5px; color:#94a3b8; }
.sg-bar-list { display:flex; flex-direction:column; gap:12px; }
.sg-bar-row { display:flex; align-items:center; gap:14px; }
.sg-bar-name { width:118px; flex:none; display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--text); }
.sg-bar-track { flex:1; background:#f1f5f9; border-radius:999px; height:22px; overflow:hidden; }
.sg-bar-fill { height:100%; border-radius:999px; display:flex; align-items:center; justify-content:flex-end; padding-right:9px; font-size:11px; font-weight:700; color:#fff; min-width:26px; }
.sg-bar-rating { width:52px; flex:none; text-align:right; font-size:13px; font-weight:700; }
.sg-section { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin:22px 2px 12px; }
.sg-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.sg-card { background:#fff; border:1px solid var(--line-soft); border-radius:18px; overflow:hidden; box-shadow:var(--shadow); cursor:pointer; transition:transform .12s, box-shadow .15s, border-color .15s; }
.sg-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:color-mix(in srgb, var(--c) 40%, #e2e8f0); }
.sg-card-head { display:flex; align-items:center; gap:12px; padding:16px 18px; background:color-mix(in srgb, var(--c) 8%, #fff); border-bottom:1px solid var(--line-soft); }
.sg-card-ic { width:44px; height:44px; border-radius:13px; display:grid; place-items:center; font-size:18px; color:#fff; background:var(--c); flex:none; box-shadow:0 8px 18px -8px var(--c); }
.sg-card-id { flex:1; min-width:0; }
.sg-card-name { font-size:15px; font-weight:800; color:var(--ink); line-height:1.15; }
.sg-card-count { font-size:12px; color:var(--muted); margin-top:2px; }
.sg-card-rating { flex:none; display:inline-flex; align-items:center; gap:4px; font-size:12.5px; font-weight:800; color:#b45309; background:#fffbeb; border:1px solid #fde68a; padding:3px 9px; border-radius:999px; }
.sg-card-rating i { font-size:10px; color:#f59e0b; }
.sg-card-body { padding:16px 18px; display:flex; flex-direction:column; gap:14px; }
.sg-lh-lbl { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; }
.sg-lh-love { color:#059669; }
.sg-lh-hate { color:#e11d48; }
.sg-lh-empty { font-size:12px; color:#94a3b8; font-style:italic; }
.sg-lh-chips { display:flex; flex-wrap:wrap; gap:7px; }
.sg-lh-chip { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; padding:4px 9px; border-radius:9px; border:1px solid; }
.sg-lh-chip b { font-size:11px; font-weight:800; opacity:.65; }
.sg-chip-love { color:#047857; background:#ecfdf5; border-color:#a7f3d0; }
.sg-chip-hate { color:#be123c; background:#fff1f2; border-color:#fecdd3; }
.sg-card-foot { padding:11px 18px; border-top:1px solid var(--line-soft); background:#fbfcfe; font-size:12.5px; font-weight:600; color:#0369a1; display:flex; align-items:center; justify-content:center; gap:7px; }
.sg-card:hover .sg-card-arrow { transform:translateX(3px); }
.sg-card-arrow { font-size:10px; transition:transform .15s; }

/* =====================================================================
   DEEP ANALYSIS (was AI Consultant) — 2028 AI-platform look
   ===================================================================== */
.dr-keywarn { display:flex; align-items:center; gap:8px; font-size:13px; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:12px; padding:10px 14px; margin-bottom:14px; }
.dr-keywarn code { background:#fef3c7; padding:1px 6px; border-radius:5px; font-size:12px; }
.dr-hero { background:linear-gradient(160deg,#111827,#0b1220); border-radius:22px; padding:26px 28px; color:#fff; box-shadow:var(--shadow-lg); margin-bottom:18px; }
.dr-eyebrow { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#a5b4fc; }
.dr-hero-title { font-size:28px; font-weight:800; line-height:1.08; margin:10px 0 8px; color:#fff; letter-spacing:-.02em; }
.dr-hero-sub { font-size:14px; color:#94a3b8; max-width:64ch; line-height:1.55; }
.dr-analyst { margin-top:16px; display:inline-flex; align-items:center; gap:9px; font-size:13px; font-weight:700; color:#fff; background:linear-gradient(135deg,#0284c7,#4f46e5); padding:10px 16px; border-radius:12px; box-shadow:0 10px 24px -8px rgba(79,70,229,.6); transition:transform .12s; cursor:pointer; }
.dr-analyst:hover { transform:translateY(-1px); }
.dr-analyst .fa-arrow-right-long { font-size:12px; opacity:.85; }
.dr-grid { display:flex; flex-direction:column; gap:14px; }
.dr-card { background:#fff; border:1px solid var(--line-soft); border-radius:18px; box-shadow:var(--shadow); overflow:hidden; }
.dr-head { display:flex; align-items:center; gap:14px; padding:16px 18px; flex-wrap:wrap; }
.dr-ic { width:44px; height:44px; border-radius:13px; display:grid; place-items:center; font-size:18px; color:#fff; background:var(--c); flex:none; box-shadow:0 8px 18px -8px var(--c); }
.dr-meta { flex:1; min-width:200px; }
.dr-title { font-size:15px; font-weight:800; color:var(--ink); line-height:1.2; }
.dr-desc { font-size:12.5px; color:var(--muted); margin-top:3px; line-height:1.45; max-width:70ch; }
.dr-actions { display:flex; align-items:center; gap:8px; flex:none; flex-wrap:wrap; justify-content:flex-end; }
.dr-run { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:#fff; background:var(--ink); padding:8px 13px; border-radius:10px; transition:transform .1s, background .15s; cursor:pointer; white-space:nowrap; }
.dr-run:hover { transform:translateY(-1px); }
.dr-run:disabled { opacity:.6; cursor:default; transform:none; }
.dr-run-ghost { color:var(--text); background:#f1f5f9; }
.dr-run-ghost:hover { background:#e2e8f0; }
.dr-chip { font-size:11px; font-weight:700; padding:3px 9px; border-radius:999px; }
.dr-out { border-top:1px solid var(--line-soft); padding:16px 18px; }
.dr-progress { margin-bottom:12px; }
.dr-ph { text-align:center; padding:22px 10px; color:#94a3b8; }
.dr-ph i { font-size:22px; color:#cbd5e1; display:block; margin-bottom:8px; }
.dr-ph p { font-size:13px; max-width:62ch; margin:0 auto; line-height:1.55; }
@media(max-width:560px){ .dr-actions{ width:100%; justify-content:flex-start } }

/* ===== Auth / login screen ===== */
.auth-hero {
  background:
    radial-gradient(58% 52% at 18% 12%, rgba(56,189,248,.42), transparent 62%),
    radial-gradient(52% 50% at 88% 92%, rgba(99,102,241,.40), transparent 60%),
    linear-gradient(155deg, #0b4f86 0%, #0a3f70 52%, #082f57 100%);
}
/* Beat the global `h1,h2,h3 { color:var(--ink) }` so the hero headline is white. */
.auth-hero h1 { color:#fff; }
.auth-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px); background-size:46px 46px; -webkit-mask-image:radial-gradient(85% 80% at 28% 18%,#000 30%,transparent 100%); mask-image:radial-gradient(85% 80% at 28% 18%,#000 30%,transparent 100%); }
.auth-aurora { position:absolute; border-radius:50%; filter:blur(76px); opacity:.5; pointer-events:none; }
.auth-aurora-1 { width:420px; height:420px; top:-120px; right:-80px; background:radial-gradient(circle,#38bdf8,transparent 70%); animation:auth-float 15s ease-in-out infinite; }
.auth-aurora-2 { width:360px; height:360px; bottom:-120px; left:-60px; background:radial-gradient(circle,#818cf8,transparent 70%); animation:auth-float 19s ease-in-out infinite reverse; }
@keyframes auth-float { 0%,100%{transform:translate(0,0)} 50%{transform:translate(26px,-26px)} }
.auth-logo { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:12px; background:linear-gradient(135deg,#3b82f6,#0ea5e9); box-shadow:0 8px 24px rgba(14,165,233,.4); font-size:18px; color:#fff; flex-shrink:0; }
.auth-logo-sm { width:34px; height:34px; border-radius:10px; font-size:15px; }
.auth-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:11.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:#e0f2fe; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(6px); padding:6px 13px; border-radius:999px; }
.auth-dot { width:7px; height:7px; border-radius:50%; background:#38bdf8; box-shadow:0 0 0 4px rgba(56,189,248,.2); animation:auth-pulse 2s infinite; }
@keyframes auth-pulse { 0%,100%{opacity:1} 50%{opacity:.35} }
.auth-grad-text { color:#7dd3fc; }
.auth-feat { display:flex; align-items:flex-start; gap:12px; color:rgba(255,255,255,.85); font-size:15px; line-height:1.4; }
.auth-check { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:7px; background:rgba(255,255,255,.16); color:#a5f3fc; font-size:11px; flex-shrink:0; margin-top:1px; }
.auth-sep { width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,.3); }
.auth-sources-label { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:13px; }
.auth-logos { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.auth-logo-chip { display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 14px; background:#fff; border-radius:9px; box-shadow:0 6px 18px rgba(2,20,45,.22); font-size:13.5px; font-weight:800; line-height:1; white-space:nowrap; }
.auth-logo-chip svg { display:block; flex-shrink:0; }
.auth-right { background:radial-gradient(90% 90% at 100% 0%, #eff6ff 0%, #f8fafc 55%); }
.auth-field label { display:block; font-size:13px; font-weight:600; color:#334155; margin-bottom:6px; }
.auth-input { display:flex; align-items:center; gap:10px; border:1.5px solid #e2e8f0; border-radius:12px; padding:0 14px; background:#fff; transition:border-color .15s, box-shadow .15s; }
.auth-input:focus-within { border-color:#0ea5e9; box-shadow:0 0 0 4px rgba(14,165,233,.12); }
.auth-input > i { color:#94a3b8; font-size:14px; width:16px; text-align:center; }
.auth-input input { flex:1; border:0; outline:0; padding:12px 0; font-size:15px; background:transparent; color:#0f172a; }
.auth-input input::placeholder { color:#cbd5e1; }
.auth-btn { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:13px; border:0; border-radius:12px; font-weight:700; font-size:15px; color:#fff; cursor:pointer; background:linear-gradient(135deg,#0ea5e9,#2563eb); box-shadow:0 10px 24px rgba(37,99,235,.28); transition:transform .12s, box-shadow .12s, filter .12s; }
.auth-btn:hover { transform:translateY(-1px); box-shadow:0 14px 30px rgba(37,99,235,.36); filter:brightness(1.06); }
.auth-btn:active { transform:translateY(0); }
.auth-btn:disabled { opacity:.7; cursor:default; transform:none; }

/* ===== Signup wizard ===== */
.wiz-steps { display:flex; align-items:center; gap:8px; margin-bottom:26px; }
.wiz-step { display:flex; align-items:center; gap:8px; }
.wiz-dot { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; font-size:12px; font-weight:700; background:#e2e8f0; color:#64748b; flex-shrink:0; transition:all .2s; }
.wiz-lbl { font-size:12.5px; font-weight:600; color:#94a3b8; white-space:nowrap; }
.wiz-step.wiz-on .wiz-dot { background:linear-gradient(135deg,#0ea5e9,#2563eb); color:#fff; box-shadow:0 4px 12px rgba(37,99,235,.35); }
.wiz-step.wiz-on .wiz-lbl { color:#0f172a; }
.wiz-step.wiz-done .wiz-dot { background:#dcfce7; color:#16a34a; }
.wiz-step.wiz-done .wiz-lbl { color:#475569; }
.wiz-line { flex:1; height:2px; min-width:14px; background:#e2e8f0; border-radius:1px; }
.wiz-opt { font-weight:400; color:#94a3b8; font-size:12px; }
.wiz-note { display:flex; gap:8px; align-items:flex-start; font-size:12.5px; color:#475569; background:#eff6ff; border:1px solid #dbeafe; border-radius:10px; padding:10px 12px; line-height:1.5; }
.wiz-note i { color:#3b82f6; margin-top:2px; }
.wiz-back { display:inline-flex; align-items:center; padding:0 18px; border:1.5px solid #e2e8f0; border-radius:12px; background:#fff; color:#475569; font-weight:600; font-size:14px; cursor:pointer; transition:all .15s; }
.wiz-back:hover { border-color:#cbd5e1; background:#f8fafc; }
.wiz-back:disabled { opacity:.5; cursor:default; }
.wiz-check { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.wiz-check li { display:flex; align-items:center; gap:12px; border:1.5px solid #e2e8f0; border-radius:14px; padding:12px 14px; background:#fff; transition:all .2s; }
.wiz-ck { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:11px; background:#f1f5f9; color:#64748b; font-size:15px; flex-shrink:0; }
.wiz-check li > div { flex:1; min-width:0; }
.wiz-check b { display:block; font-size:14px; color:#0f172a; }
.wiz-check small { display:block; font-size:12px; color:#94a3b8; margin-top:1px; }
.wiz-st { font-size:14px; width:18px; text-align:center; color:#cbd5e1; }
.wiz-check li.wiz-run { border-color:#bae6fd; background:#f0f9ff; }
.wiz-check li.wiz-run .wiz-ck { background:#e0f2fe; color:#0284c7; }
.wiz-check li.wiz-run .wiz-st::before { content:"\f110"; animation:fa-spin 1s linear infinite; color:#0ea5e9; }
.wiz-check li.wiz-ok { border-color:#bbf7d0; }
.wiz-check li.wiz-ok .wiz-ck { background:#dcfce7; color:#16a34a; }
.wiz-check li.wiz-ok .wiz-st::before { content:"\f00c"; color:#16a34a; }
.wiz-check li.wiz-warn { border-color:#fde68a; }
.wiz-check li.wiz-warn .wiz-st::before { content:"\f071"; color:#d97706; }

/* ===== Plan locks (sidebar + upgrade screen) ===== */
.nav-locked { opacity:.55; }
.nav-lock-ic { font-size:10px; color:#64748b; }
.upg-wrap { display:flex; align-items:center; justify-content:center; min-height:70vh; padding:24px; }
.upg-card { max-width:520px; width:100%; background:#fff; border:1px solid #e2e8f0; border-radius:22px; padding:40px 36px; text-align:center; box-shadow:0 24px 60px -28px rgba(15,31,61,.18); }
.upg-orb { position:relative; display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:18px; background:linear-gradient(135deg,#eff6ff,#e0e7ff); color:#4f46e5; font-size:24px; margin-bottom:18px; }
.upg-lock { position:absolute; right:-6px; bottom:-6px; width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; background:#0f172a; color:#fbbf24; border-radius:50%; font-size:11px; border:2.5px solid #fff; }
.upg-card h2 { font-size:24px; font-weight:800; color:#0f172a; letter-spacing:-.02em; }
.upg-grad { background:linear-gradient(90deg,#0ea5e9,#6366f1); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.upg-sub { font-size:14px; color:#64748b; margin-top:10px; line-height:1.6; }
.upg-perks { list-style:none; margin:20px 0 0; padding:0; text-align:left; display:flex; flex-direction:column; gap:9px; }
.upg-perks li { display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:#334155; line-height:1.45; }
.upg-perks li i { color:#10b981; margin-top:2.5px; font-size:13px; }
.upg-actions { margin-top:26px; display:flex; flex-direction:column; gap:12px; align-items:center; }
.upg-btn { max-width:320px; text-decoration:none; }
.upg-ghost { font-size:13px; color:#64748b; font-weight:600; }
.upg-ghost:hover { color:#0f172a; }
.upg-note-owner { font-size:13px; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:10px; padding:10px 14px; }

/* ===== First-run setup guide ===== */
#ob-overlay { position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(10,18,32,.62); backdrop-filter:blur(7px); animation:ob-in .25s ease; }
@keyframes ob-in { from{opacity:0} to{opacity:1} }
#ob-overlay.ob-out { opacity:0; transition:opacity .22s ease; }
.ob-card { width:100%; max-width:560px; background:#fff; border-radius:22px; padding:28px 30px 30px; box-shadow:0 40px 100px -30px rgba(2,12,32,.65); max-height:92vh; overflow-y:auto; }
.ob-head { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.ob-title { font-size:17px; font-weight:800; color:#0f172a; letter-spacing:-.01em; }
.ob-sub { font-size:12.5px; color:#94a3b8; margin-top:1px; }
.ob-skip { font-size:12.5px; color:#94a3b8; background:none; border:none; cursor:pointer; font-weight:600; white-space:nowrap; }
.ob-skip:hover { color:#475569; text-decoration:underline; }
.ob-steps { margin-bottom:20px; }
.ob-lead { font-size:14.5px; color:#334155; line-height:1.6; }
.ob-lead b { color:#0f172a; }
.ob-note { font-size:12.5px; color:#94a3b8; line-height:1.5; }
.ob-center { text-align:center; padding:14px 0; display:flex; flex-direction:column; align-items:center; }
.ob-or { display:flex; align-items:center; gap:10px; font-size:11.5px; color:#94a3b8; text-transform:uppercase; letter-spacing:.05em; font-weight:600; margin:18px 0 12px; }
.ob-or span { flex:1; height:1px; background:#e2e8f0; }
.ob-select { border:1.5px solid #e2e8f0; border-radius:12px; padding:0 10px; font-size:14px; color:#0f172a; background:#fff; outline:none; }
.ob-select:focus { border-color:#0ea5e9; }
.ob-found { display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.ob-src { display:flex; align-items:center; gap:10px; border:1.5px solid #e2e8f0; border-radius:12px; padding:10px 13px; cursor:pointer; transition:border-color .15s; }
.ob-src:hover { border-color:#bae6fd; }
.ob-src input { width:16px; height:16px; accent-color:#0284c7; }
.ob-src-p { display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:700; color:#0f172a; white-space:nowrap; }
.ob-src-u { flex:1; font-size:12px; color:#94a3b8; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ob-src-ok { cursor:default; border-color:#bbf7d0; background:#f0fdf4; }
.ob-ghost { display:block; width:100%; text-align:center; background:none; border:none; font-size:13px; color:#64748b; font-weight:600; cursor:pointer; padding:8px; }
.ob-ghost:hover { color:#0f172a; }
.ob-party { font-size:44px; line-height:1; margin-bottom:10px; }
.ob-done-t { font-size:22px; font-weight:800; color:#0f172a; letter-spacing:-.01em; margin-bottom:8px; }
