/* ============================================================
   EZ Rankings AI Mode — Main Page Styles
   Theme: Light/Dark with #f7c812 accent
   ============================================================ */

/* ── CSS Custom Properties ── */
:root {
    --bg-primary:       #ffffff;
    --bg-secondary:     #f5f6f8;
    --bg-card:          #ffffff;
    --bg-input:         #f8f9fa;
    --bg-hover:         #f0f1f3;
    --text-primary:     #111111;
    --text-secondary:   #555555;
    --text-muted:       #9ca3af;
    --accent:           #f7c812;
    --accent-hover:     #e6b800;
    --accent-dark:      #d4a800;
    --accent-text:      #1a1a1a;
    --border:           #e8eaed;
    --border-light:     #f1f3f5;
    --shadow-sm:        0 1px 4px rgba(0,0,0,0.06);
    --shadow-md:        0 4px 18px rgba(0,0,0,0.09);
    --shadow-lg:        0 8px 36px rgba(0,0,0,0.12);
    --chat-user-bg:     #f7c812;
    --chat-user-text:   #1a1a1a;
    --chat-ai-bg:       #f0f1f3;
    --chat-ai-text:     #111111;
    --header-bg:        #ffffff;
    --sidebar-bg:       #f8f9fa;
    --radius:           14px;
    --radius-sm:        9px;
    --radius-xs:        5px;
    --transition:       all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --header-height:    68px;
    --font:             'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

[data-theme="dark"] {
    --bg-primary:     #0d0d0d;
    --bg-secondary:   #141414;
    --bg-card:        #1c1c1c;
    --bg-input:       #1e1e1e;
    --bg-hover:       #252525;
    --text-primary:   #f0f0f0;
    --text-secondary: #a0a0a0;
    --text-muted:     #555555;
    --accent:         #f7c812;
    --accent-hover:   #ffe040;
    --accent-dark:    #e6b800;
    --accent-text:    #0d0d0d;
    --border:         #2a2a2a;
    --border-light:   #1e1e1e;
    --shadow-sm:      0 1px 4px rgba(0,0,0,0.35);
    --shadow-md:      0 4px 18px rgba(0,0,0,0.5);
    --shadow-lg:      0 8px 36px rgba(0,0,0,0.65);
    --chat-user-bg:   #f7c812;
    --chat-user-text: #0d0d0d;
    --chat-ai-bg:     #1e1e1e;
    --chat-ai-text:   #f0f0f0;
    --header-bg:      #0d0d0d;
    --sidebar-bg:     #111111;
}

/* ── Base Reset ── */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: 15px;
    scroll-behavior: smooth;
}

body {
    font-family: var(--font);
    background: var(--bg-primary);
    color: var(--text-primary);
    transition: background 0.35s ease, color 0.35s ease;
    height: 100vh;
    overflow: hidden;
}

/* ── Scrollbar Styling ── */
::-webkit-scrollbar        { width: 5px; }
::-webkit-scrollbar-track  { background: transparent; }
::-webkit-scrollbar-thumb  { background: var(--border); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* ============================================================
   HEADER
   ============================================================ */
.ai-header {
    height: var(--header-height);
    background: var(--header-bg);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    padding: 0 24px;
    position: relative;
    z-index: 100;
    transition: var(--transition);
    box-shadow: var(--shadow-sm);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 16px;
}

.header-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}

.header-logo {
    height: 40px;
    width: auto;
    object-fit: contain;
}

.header-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--accent);
    color: var(--accent-text);
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 50px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.header-badge i { font-size: 10px; }

.header-controls {
    display: flex;
    align-items: center;
    gap: 10px;
}

.theme-toggle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1.5px solid var(--border);
    background: var(--bg-card);
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 16px;
    transition: var(--transition);
    flex-shrink: 0;
}

.theme-toggle:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--accent-text);
    transform: rotate(15deg);
}

.header-icon-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1.5px solid var(--border);
    background: var(--bg-card);
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 15px;
    transition: var(--transition);
    flex-shrink: 0;
}

.header-icon-btn:hover {
    background: rgba(247,200,18,0.08);
    border-color: var(--accent);
    color: var(--accent-dark);
}

.header-icon-btn.danger:hover {
    background: rgba(239,68,68,0.08);
    border-color: #ef4444;
    color: #ef4444;
}

.btn-back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 16px;
    border-radius: 8px;
    border: 1.5px solid var(--border);
    background: transparent;
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: var(--transition);
    white-space: nowrap;
}

.btn-back:hover {
    border-color: var(--accent);
    color: var(--text-primary);
    background: var(--bg-hover);
}

/* ============================================================
   MAIN LAYOUT
   ============================================================ */
.ai-main {
    height: calc(100vh - var(--header-height));
    display: flex;
    overflow: hidden;
}

/* ── Chat Panel (Left) ── */
.chat-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--border);
    background: var(--bg-primary);
    min-width: 0;
    transition: var(--transition);
    overflow: hidden;
    position: relative;
}

/* ── Scroll to Bottom Button ── */
.scroll-bottom-btn {
    position: absolute;
    bottom: 110px;
    right: 20px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--accent);
    color: var(--accent-text);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 3px 14px rgba(0,0,0,0.18);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.2s ease, transform 0.2s ease;
    pointer-events: none;
    z-index: 50;
}

.scroll-bottom-btn.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: all;
}


/* ── Typing Cursor ── */
.typing-cursor {
    display: inline-block;
    width: 2px;
    height: 1em;
    background: var(--text-primary);
    margin-left: 2px;
    vertical-align: text-bottom;
    animation: blinkCursor 0.7s steps(1) infinite;
}

@keyframes blinkCursor {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0; }
}

/* ── Welcome Screen ── */
.chat-welcome {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 32px;
    text-align: center;
    overflow-y: auto;
}

.chat-welcome.hidden { display: none; }

.welcome-avatar {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 38px;
    margin-bottom: 24px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25), 0 0 0 4px rgba(247,200,18,0.2);
    animation: float 3s ease-in-out infinite;
    position: relative;
}

.welcome-avatar::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid rgba(247,200,18,0.4);
    animation: pulse-ring 2.5s ease-in-out infinite;
}

@keyframes pulse-ring {
    0%, 100% { transform: scale(1); opacity: 0.6; }
    50%       { transform: scale(1.08); opacity: 0.15; }
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-8px); }
}

.welcome-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 10px;
    line-height: 1.3;
}

.welcome-subtitle {
    font-size: 15px;
    color: var(--text-secondary);
    max-width: 420px;
    line-height: 1.6;
    margin-bottom: 28px;
}

.welcome-starters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    max-width: 480px;
}

.starter-chip {
    padding: 8px 16px;
    border-radius: 50px;
    border: 1.5px solid var(--border);
    background: var(--bg-card);
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition);
}

.starter-chip:hover {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--accent-text);
    transform: translateY(-1px);
}

/* ── Chat Messages Area ── */
.chat-messages {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-anchor: none; /* scroll position is fully JS-controlled — stop the browser's auto scroll-anchoring from fighting it while message content grows */
    padding: 32px 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: var(--bg-primary);
}

/* Empty (no messages yet) — don't let it steal flex space from .chat-welcome */
.chat-messages:empty {
    display: none;
    flex: 0;
    padding: 0;
}

/* ── Message Row ── */
.message {
    display: flex;
    align-items: flex-start;
    gap: 0;
    width: 100%;
    padding: 6px 0;
    animation: fadeUp 0.25s ease;
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── AI Message — full-width row with light tint ── */
.message-assistant {
    background: var(--msg-ai-row);
    border-top: 1px solid var(--border-light);
    border-bottom: 1px solid var(--border-light);
    padding: 20px 0;
    align-self: stretch;
    width: 100%;
}

:root {
    --msg-ai-row: rgba(247,200,18,0.03);
}
[data-theme="dark"] {
    --msg-ai-row: rgba(255,255,255,0.02);
}

/* ── User Message — right aligned ── */
.message-user {
    justify-content: flex-end;
    padding: 16px 28px;
    align-self: stretch;
}

/* ── Inner content wrapper (constrains width) ── */
.message-inner {
    max-width: 780px;
    width: 100%;
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.message-user .message-inner {
    padding: 0;
    max-width: 100%;
    margin: 0;
    justify-content: flex-end;
}

/* ── Avatars ── */
.message-avatar {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
    margin-top: 2px;
}

.message-avatar-ai {
    background: linear-gradient(135deg, #1e293b, #0f172a);
    color: var(--accent);
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

.message-avatar-user {
    background: linear-gradient(135deg, var(--accent), var(--accent-dark));
    color: var(--accent-text);
    box-shadow: 0 2px 8px rgba(247,200,18,0.35);
}

/* ── Bubble content ── */
.message-bubble {
    flex: 1;
    max-width: 100%;
    word-break: break-word;
    line-height: 1.7;
}

/* Links inside AI responses */
.ai-link {
    color: var(--accent-dark);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid rgba(212,168,0,0.4);
    word-break: break-all;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.ai-link:hover {
    color: var(--text-primary);
    border-bottom-color: var(--accent-dark);
}

[data-theme="dark"] .ai-link {
    color: var(--accent);
    border-bottom-color: rgba(247,200,18,0.35);
}

[data-theme="dark"] .ai-link:hover {
    color: #fff;
    border-bottom-color: var(--accent);
}

/* AI bubble — no bubble at all, just clean text */
.message-bubble-ai {
    background: transparent;
    color: var(--text-primary);
    padding: 0;
    border: none;
    box-shadow: none;
}

/* User bubble — compact pill */
.message-bubble-user {
    background: linear-gradient(135deg, var(--accent), #f0c000);
    color: var(--accent-text);
    padding: 11px 18px;
    border-radius: 18px 18px 4px 18px;
    box-shadow: 0 2px 12px rgba(247,200,18,0.3);
    font-size: 14.5px;
    line-height: 1.6;
    max-width: 520px;
    flex: none;
}

.human-wait-timer {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(247, 200, 18, .14);
    border: 1px solid rgba(247, 200, 18, .35);
    color: var(--text-primary);
    font-size: 12.5px;
    font-weight: 500;
}
.human-wait-timer i {
    color: #c89700;
}
.human-wait-timer strong {
    font-variant-numeric: tabular-nums;
}

.live-typing-dots {
    display: inline-flex;
    gap: 3px;
    margin-right: 6px;
    vertical-align: middle;
}
.live-typing-dots i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    opacity: .35;
    animation: liveTypingPulse 1s infinite ease-in-out;
}
.live-typing-dots i:nth-child(2) { animation-delay: .15s; }
.live-typing-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes liveTypingPulse {
    0%, 80%, 100% { opacity: .25; transform: translateY(0); }
    40% { opacity: .9; transform: translateY(-2px); }
}

[data-theme="dark"] .message-bubble-user,
[data-theme="dark"] .message-bubble-user .message-text,
[data-theme="dark"] .message-bubble-user .message-time {
    color: #111111;
}

/* ── AI sender label ── */
.message-sender {
    font-size: 12px;
    font-weight: 700;
    color: var(--accent-dark);
    margin-bottom: 6px;
    letter-spacing: 0.2px;
}

/* ── Message text ── */
.message-text {
    font-size: 14.5px;
    line-height: 1.75;
    color: var(--text-primary);
}

.message-text p { margin-bottom: 10px; }
.message-text p:last-child { margin-bottom: 0; }
.message-text strong { font-weight: 600; color: var(--text-primary); }
.message-text ul,
.message-text ol {
    list-style: none;
    padding: 0;
    margin: 10px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.message-text .ai-list li {
    border-radius: 8px;
    padding: 9px 13px;
    line-height: 1.65;
    font-size: 14px;
    margin-bottom: 0;
    border: none;
    transition: filter 0.15s ease;
}

.message-text .ai-list li:hover { filter: brightness(0.95); }

/* Cycling pastel backgrounds + matching dark text */
.message-text .ai-list li:nth-child(6n+1) { background: #EEF5E5; color: #2c4f14; }
.message-text .ai-list li:nth-child(6n+2) { background: #FBF1E1; color: #7a4218; }
.message-text .ai-list li:nth-child(6n+3) { background: #E5EDF9; color: #1a3a6e; }
.message-text .ai-list li:nth-child(6n+4) { background: #F5E5F1; color: #5c1a40; }
.message-text .ai-list li:nth-child(6n+5) { background: #F7F3E3; color: #5a4610; }
.message-text .ai-list li:nth-child(6n+6) { background: #E3F5F3; color: #164a44; }

/* Keep dark mode neutral */
[data-theme="dark"] .message-text .ai-list li { background: rgba(255,255,255,0.06) !important; color: inherit !important; }

/* Numbered list variant */
.message-text .ai-list-ol {
    list-style: none;
    counter-reset: ai-ol;
}

.message-text .ai-list-ol li {
    counter-increment: ai-ol;
    padding-left: 2.4em;
    position: relative;
}
.message-text .ai-list-ol li::before {
    content: counter(ai-ol);
    position: absolute;
    left: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    background: var(--accent);
    color: var(--accent-text);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}

/* Service section headings inside AI bubbles */
.message-text .ai-heading {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--text-primary);
    margin: 16px 0 8px;
    padding-bottom: 5px;
    border-bottom: 2px solid var(--accent);
    display: inline-block;
    letter-spacing: 0.01em;
}

.message-text .ai-heading:first-child {
    margin-top: 4px;
}

.message-text .ai-subheading {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
    margin: 10px 0 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

[data-theme="dark"] .message-text .ai-heading {
    color: var(--text-primary);
    border-bottom-color: var(--accent);
}

[data-theme="dark"] .message-text .ai-subheading {
    color: var(--text-secondary);
}
.message-text a {
    color: var(--accent-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ── Timestamp ── */
.message-time {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 8px;
    opacity: 0.6;
}

.message-user .message-time {
    text-align: right;
    padding-right: 2px;
    margin-top: 5px;
}

/* ── Message Footer (time + actions) ── */
.msg-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
    gap: 8px;
}

.msg-footer .message-time { margin-top: 0; }

.message-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.message-assistant:hover .message-actions { opacity: 1; }

.action-btn {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 11px;
    transition: all 0.15s ease;
    font-family: var(--font);
    padding: 0;
}

.action-btn:hover {
    border-color: var(--accent);
    color: var(--accent-dark);
    background: rgba(247,200,18,0.08);
}

.action-btn.active-up {
    background: rgba(34,197,94,0.12);
    border-color: #22c55e;
    color: #22c55e;
}

.action-btn.active-down {
    background: rgba(239,68,68,0.1);
    border-color: #ef4444;
    color: #ef4444;
}

/* ── Related Questions ── */
.related-qs {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 7px;
    padding: 14px 28px 18px calc(28px + 48px);
    max-width: 780px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

.related-qs-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    display: flex;
    align-items: center;
    gap: 5px;
    width: 100%;
    margin-bottom: 2px;
}

.related-qs-label i { color: var(--accent); }

.related-q-chip {
    padding: 6px 13px;
    border-radius: 50px;
    border: 1.5px solid var(--border);
    background: var(--bg-card);
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 500;
    font-family: var(--font);
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: left;
    line-height: 1.4;
}

.related-q-chip:hover {
    border-color: var(--accent);
    background: rgba(247,200,18,0.08);
    color: var(--text-primary);
    transform: translateY(-1px);
}

/* ── Package Cards ── */
.pkg-cards-wrap {
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.pkg-cards-header {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}
.pkg-card {
    background: var(--bg-secondary);
    border: 1.5px solid var(--border);
    border-radius: 14px;
    padding: 16px;
    position: relative;
    transition: transform 0.2s, box-shadow 0.2s;
}
.pkg-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
.pkg-card.pkg-popular {
    border-color: var(--accent);
    background: linear-gradient(135deg, rgba(247,200,18,0.06), var(--bg-secondary));
}
.pkg-popular-badge {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--accent);
    color: var(--accent-text);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    padding: 3px 12px;
    border-radius: 50px;
    white-space: nowrap;
}
.pkg-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}
.pkg-tier {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--accent-dark);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 2px;
}
.pkg-name {
    font-size: 15px;
    font-weight: 800;
    color: var(--text-primary);
}
.pkg-sub {
    font-size: 11.5px;
    color: var(--text-muted);
    margin-top: 2px;
}
.pkg-roi {
    background: rgba(34,197,94,0.12);
    border: 1px solid rgba(34,197,94,0.25);
    color: #16a34a;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 50px;
    white-space: nowrap;
    flex-shrink: 0;
}
[data-theme="dark"] .pkg-roi {
    color: #4ade80;
    background: rgba(74,222,128,0.1);
    border-color: rgba(74,222,128,0.2);
}
.pkg-features {
    list-style: none;
    padding: 0;
    margin: 0 0 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pkg-features li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.4;
}
.pkg-features li i {
    color: var(--accent);
    font-size: 11px;
    margin-top: 2px;
    flex-shrink: 0;
}
.pkg-cta-btn {
    width: 100%;
    padding: 9px 16px;
    background: var(--accent);
    color: var(--accent-text);
    border: none;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.2s, transform 0.15s;
}
.pkg-cta-btn:hover {
    background: var(--accent-hover);
    transform: translateY(-1px);
}
.pkg-card:not(.pkg-popular) .pkg-cta-btn {
    background: transparent;
    border: 1.5px solid var(--border);
    color: var(--text-primary);
}
.pkg-card:not(.pkg-popular) .pkg-cta-btn:hover {
    border-color: var(--accent);
    color: var(--accent-dark);
    background: rgba(247,200,18,0.06);
}

/* ── Contact Card ── */
.ez-contact-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}
.ez-contact-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1.5px solid var(--border);
    background: var(--bg-secondary);
    text-decoration: none;
    color: var(--text-primary);
    transition: all 0.18s ease;
    cursor: pointer;
}
.ez-contact-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); text-decoration: none; color: var(--text-primary); }
.ez-cbtn-icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}
.ez-contact-wa  .ez-cbtn-icon { background: #25d366; color: #fff; }
.ez-contact-phone .ez-cbtn-icon { background: #3b82f6; color: #fff; }
.ez-contact-email .ez-cbtn-icon { background: #f7c812; color: #1a1a1a; }
.ez-contact-web   .ez-cbtn-icon { background: #8b5cf6; color: #fff; }
.ez-contact-wa:hover  { border-color: #25d366; background: rgba(37,211,102,0.06); }
.ez-contact-phone:hover { border-color: #3b82f6; background: rgba(59,130,246,0.06); }
.ez-contact-email:hover { border-color: #f7c812; background: rgba(247,200,18,0.08); }
.ez-contact-web:hover   { border-color: #8b5cf6; background: rgba(139,92,246,0.06); }
.ez-cbtn-body { display: flex; flex-direction: column; flex: 1; }
.ez-cbtn-label { font-size: 12px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.ez-cbtn-val   { font-size: 14px; font-weight: 600; color: var(--text-primary); margin-top: 1px; }
.ez-cbtn-ext   { font-size: 11px; color: var(--text-muted); flex-shrink: 0; }

/* ── App Tech Section Divider (inside .related-qs) ── */
.app-tech-section {
    width: 100%;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 6px;
    margin-bottom: 1px;
    padding-left: 2px;
    border-left: 2.5px solid var(--accent);
    padding-left: 6px;
}
.app-tech-section i { color: var(--accent); font-size: 10px; }
.related-q-chip i { margin-right: 4px; }

/* ── History Banner ── */
.history-banner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    background: var(--bg-card);
    border: 1.5px solid var(--border);
    border-left: 3px solid var(--accent);
    border-radius: 12px;
    padding: 10px 14px;
    margin-bottom: 10px;
    width: 100%;
}

.history-banner i { color: var(--accent-dark); font-size: 14px; flex-shrink: 0; }

.history-banner span {
    font-size: 13px;
    color: var(--text-secondary);
    flex: 1;
    min-width: 100px;
}

.history-btn-continue {
    background: var(--accent);
    color: var(--accent-text);
    border: none;
    border-radius: 8px;
    padding: 7px 16px;
    font-size: 13px;
    font-weight: 600;
    font-family: var(--font);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.history-btn-continue:hover { background: var(--accent-hover); }

.history-btn-new {
    background: transparent;
    color: var(--text-muted);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 500;
    font-family: var(--font);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.history-btn-new:hover { color: var(--text-primary); border-color: var(--text-muted); }

/* ── Typing Indicator ── */
.typing-bubble {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 0;
}

.typing-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
    animation: typingBounce 1.4s ease-in-out infinite;
    opacity: 0.7;
}

.typing-dot:nth-child(2) { animation-delay: 0.2s; }
.typing-dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes typingBounce {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
    30%           { transform: translateY(-8px); opacity: 1; }
}

/* ── WhatsApp CTA above Inquiry Form ── */
.wa-cta-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
}

.wa-cta-label {
    font-size: 12.5px;
    color: var(--text-muted);
    white-space: nowrap;
}

.wa-cta-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 13px;
    border-radius: 50px;
    background: #25d366;
    color: #fff;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, transform 0.15s ease;
    white-space: nowrap;
}

.wa-cta-chip i { font-size: 14px; }

.wa-cta-chip:hover {
    background: #1ebe5d;
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
}

/* ── Inquiry Form inside Chat ── */
.inquiry-form-bubble {
    max-width: 500px;
    padding: 0;
}

.inquiry-form-header {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 4px;
}

.inquiry-form-header i {
    width: 32px;
    height: 32px;
    background: linear-gradient(135deg, var(--accent), var(--accent-dark));
    color: var(--accent-text);
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}

.inquiry-form-subtitle {
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: 14px;
    line-height: 1.5;
}

/* Form card container */
.inquiry-form {
    background: var(--bg-secondary);
    border: 1.5px solid var(--border);
    border-radius: 14px;
    padding: 14px;
}

[data-theme="dark"] .inquiry-form {
    background: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.07);
}

/* Inputs & select */
.inquiry-form .form-control,
.inquiry-form .form-select {
    background: var(--bg-card);
    border: 1.5px solid var(--border);
    color: var(--text-primary);
    font-size: 13px;
    font-family: var(--font);
    border-radius: 10px;
    padding: 10px 14px;
    height: auto;
    line-height: 1.5;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.inquiry-form .form-control:focus,
.inquiry-form .form-select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(247, 200, 18, 0.15);
    background: var(--bg-card);
    color: var(--text-primary);
    outline: none;
}

.inquiry-form .form-control::placeholder {
    color: var(--text-muted);
    font-size: 13px;
    opacity: 1;
}

/* Custom select arrow */
.inquiry-form .form-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%239ca3af' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 38px;
    cursor: pointer;
}

.inquiry-form .form-select option {
    background: var(--bg-card);
    color: var(--text-primary);
}

/* Dark mode overrides */
[data-theme="dark"] .inquiry-form .form-control,
[data-theme="dark"] .inquiry-form .form-select {
    background: var(--bg-input);
    border-color: rgba(255,255,255,0.1);
    color: var(--text-primary);
}

[data-theme="dark"] .inquiry-form .form-control:focus,
[data-theme="dark"] .inquiry-form .form-select:focus {
    background: var(--bg-input);
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(247, 200, 18, 0.12);
}

[data-theme="dark"] .inquiry-form .form-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%23555555' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-color: var(--bg-input);
}

[data-theme="dark"] .inquiry-form .form-select option {
    background: var(--bg-card);
}

.btn-accent {
    background: var(--accent);
    color: var(--accent-text);
    border: none;
    border-radius: var(--radius-sm);
    font-weight: 700;
    padding: 10px 20px;
    transition: var(--transition);
}

.btn-accent:hover {
    background: var(--accent-hover);
    color: var(--accent-text);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(247, 200, 18, 0.4);
}

.btn-accent:disabled {
    opacity: 0.7;
    transform: none;
}

/* Compact success inside form bubble */
.inquiry-success-compact {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 4px;
    font-size: 14px;
    font-weight: 600;
    color: #16a34a;
}

.inquiry-success-compact i {
    font-size: 22px;
    flex-shrink: 0;
}

/* ── Leadership Cards ── */
.leadership-cards {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.leader-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 14px 16px;
    flex: 1;
    min-width: 210px;
}

.leader-photo {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    object-fit: cover;
    object-position: top;
    border: 2.5px solid var(--accent);
    flex-shrink: 0;
}

.leader-name {
    font-weight: 700;
    font-size: 15px;
    color: var(--text-primary);
    line-height: 1.2;
}

.leader-title {
    font-size: 11.5px;
    color: var(--accent-dark);
    font-weight: 600;
    margin: 3px 0 7px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.leader-bio {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}

[data-theme="dark"] .leader-card {
    background: rgba(255,255,255,0.05);
}

/* ── Social Media Card ── */
.social-media-card {
    margin-top: 6px;
}
.social-media-card p {
    margin: 0 0 12px 0;
    font-size: 0.95rem;
}
.ai-social-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.ai-social-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    border-radius: 24px;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none !important;
    color: #fff !important;
    transition: opacity 0.18s, transform 0.15s;
    white-space: nowrap;
}
.ai-social-btn:hover { opacity: 0.85; transform: translateY(-2px); color: #fff !important; }
.ai-social-btn i { font-size: 0.95rem; }
.ai-social-btn.fb  { background: #1877F2; }
.ai-social-btn.ig  { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
.ai-social-btn.li  { background: #0A66C2; }
.ai-social-btn.tw  { background: #000; }
.ai-social-btn.yt  { background: #FF0000; }
.ai-social-btn.bh  { background: #1769FF; }
[data-theme="dark"] .ai-social-btn.tw { background: #333; }

/* ── Partners Card ── */
.ai-partners-card { margin-top: 4px; }
.ai-partners-card > p { margin: 0 0 12px; font-size: 0.93rem; }
.ai-partners-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 14px;
}
.ai-partner-logo {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    padding: 10px 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
}
.ai-partner-logo img {
    max-width: 100%;
    max-height: 38px;
    object-fit: contain;
    filter: grayscale(30%);
    transition: filter 0.2s;
}
.ai-partner-logo:hover img { filter: grayscale(0%); }
.ai-view-all-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 20px;
    background: var(--accent);
    color: var(--accent-text) !important;
    font-size: 0.83rem;
    font-weight: 700;
    border-radius: 24px;
    text-decoration: none !important;
    transition: background 0.18s, transform 0.15s;
}
.ai-view-all-btn:hover { background: var(--accent-hover); transform: translateY(-1px); color: var(--accent-text) !important; }
[data-theme="dark"] .ai-partner-logo { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.1); }
[data-theme="dark"] .ai-partner-logo img { filter: grayscale(0%) brightness(1.15); }

/* ── Service Page Card ── */
.service-learn-more {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.svc-page-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: linear-gradient(135deg, rgba(247,200,18,0.10) 0%, rgba(247,200,18,0.04) 100%);
    border: 1.5px solid rgba(247,200,18,0.35);
    border-radius: 14px;
    padding: 14px 16px;
    margin-top: 4px;
}

.svc-page-card-inner {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.spc-icon {
    width: 36px;
    height: 36px;
    min-width: 36px;
    background: var(--accent);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--accent-text);
}

.spc-body { display: flex; flex-direction: column; gap: 2px; }

.spc-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--accent);
    opacity: 0.85;
}

.spc-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
}

.spc-tagline {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
    margin-top: 2px;
}

.spc-cta {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    background: var(--accent);
    color: var(--accent-text) !important;
    border-radius: 22px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background 0.18s, transform 0.15s, box-shadow 0.18s;
    box-shadow: 0 3px 10px rgba(247,200,18,0.30);
    align-self: flex-start;
}

.spc-cta:hover {
    background: var(--accent-hover);
    transform: translateX(3px);
    box-shadow: 0 5px 16px rgba(247,200,18,0.40);
    text-decoration: none !important;
}

.spc-cta i { font-size: 11px; }

.spc-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.spc-pricing-cta {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    background: transparent;
    color: var(--accent) !important;
    border: 1.5px solid var(--accent);
    border-radius: 22px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.18s, transform 0.15s;
    align-self: flex-start;
}

.spc-pricing-cta:hover {
    background: rgba(247,200,18,0.12);
    transform: translateX(2px);
}

.spc-pricing-cta i { font-size: 11px; }

[data-theme="dark"] .svc-page-card {
    background: linear-gradient(135deg, rgba(247,200,18,0.08) 0%, rgba(247,200,18,0.03) 100%);
    border-color: rgba(247,200,18,0.25);
}

/* Thank-you AI chat bubble */
.ty-bubble {
    border-left-color: #22c55e !important;
    padding: 20px 22px;
    max-width: 420px;
}

.ty-check {
    font-size: 38px;
    color: #22c55e;
    margin-bottom: 10px;
    line-height: 1;
}

.ty-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--text-primary);
    margin-bottom: 8px;
}

.ty-service-badge {
    display: inline-flex;
    align-items: center;
    background: rgba(247,200,18,0.12);
    border: 1px solid rgba(247,200,18,0.4);
    color: var(--accent-dark);
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
    margin-bottom: 12px;
}

.ty-body {
    font-size: 13.5px;
    color: var(--text-secondary);
    line-height: 1.65;
    margin-bottom: 16px;
}

.ty-body strong {
    color: var(--text-primary);
}

.ty-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ty-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 8px;
    border: 1.5px solid var(--border);
    background: var(--bg-secondary);
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: var(--transition);
}

.ty-btn:hover {
    border-color: var(--accent);
    background: rgba(247,200,18,0.08);
    color: var(--text-primary);
    transform: translateY(-1px);
}

/* ── Suggestions Dropdown ── */
.suggestions-dropdown {
    position: fixed;
    background: var(--bg-card);
    border: 1.5px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    z-index: 9999;
    display: none;
}

.suggestions-dropdown.visible {
    display: block;
}

.suggestion-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    cursor: pointer;
    font-size: 13.5px;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-light);
    transition: background 0.1s ease, color 0.1s ease, padding-left 0.1s ease;
    line-height: 1.4;
}

.suggestion-item:last-child { border-bottom: none; }

.suggestion-item i {
    color: var(--text-muted);
    font-size: 11px;
    flex-shrink: 0;
    transition: color 0.1s ease;
}

.suggestion-item:hover,
.suggestion-item.active {
    background: var(--bg-hover);
    color: var(--text-primary);
    padding-left: 20px;
}

.suggestion-item:hover i,
.suggestion-item.active i {
    color: var(--accent-dark);
}

.suggestion-highlight {
    font-weight: 700;
    color: var(--accent-dark);
}

/* ── Chat Input Area ── */
.chat-input-area {
    flex-shrink: 0;
    padding: 16px 28px 20px;
    background: var(--bg-primary);
    border-top: 1px solid var(--border-light);
}

.chat-input-inner {
    max-width: 720px;
    margin: 0 auto;
}

.chat-input-wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--bg-card);
    border: 1.5px solid var(--border);
    border-radius: 18px;
    padding: 14px 100px 14px 18px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 2px 16px rgba(0,0,0,0.07);
}

.chat-input-wrapper:focus-within {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(247,200,18,0.14), 0 2px 16px rgba(0,0,0,0.07);
}

.chat-input {
    width: 100%;
    background: transparent;
    border: none;
    outline: none;
    color: var(--text-primary);
    font-size: 15px;
    font-family: var(--font);
    line-height: 1.6;
    resize: none;
    min-height: 52px;
    max-height: 180px;
    padding: 0;
}

.chat-input::placeholder { color: var(--text-muted); }

.chat-input:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    user-select: none;
}

.chat-input:disabled::placeholder {
    color: var(--text-muted);
    font-style: italic;
}

.chat-input-wrapper:has(.chat-input:disabled) {
    opacity: 0.75;
    pointer-events: none;
}

.send-btn {
    position: absolute;
    right: 10px;
    bottom: 10px;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border: none;
    background: linear-gradient(135deg, var(--accent), var(--accent-dark));
    color: var(--accent-text);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 14px;
    flex-shrink: 0;
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
    box-shadow: 0 2px 10px rgba(247,200,18,0.35);
}

.send-btn:hover:not(:disabled) {
    transform: scale(1.07);
    box-shadow: 0 4px 16px rgba(247,200,18,0.55);
}

.send-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.chat-input-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 9px;
    font-size: 11px;
    color: var(--text-muted);
    gap: 4px;
    letter-spacing: 0.1px;
}

.chat-input-footer a {
    color: var(--accent-dark);
    text-decoration: none;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.chat-input-footer a:hover { text-decoration: none; }

.consult-shortcut {
    background: none;
    border: 1px solid var(--border);
    padding: 2px 9px;
    border-radius: 20px;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 500;
    font-family: var(--font);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: border-color 0.15s ease, color 0.15s ease;
}

.consult-shortcut:hover {
    border-color: var(--accent);
    color: var(--accent-dark);
}

/* ============================================================
   SIDEBAR PANEL (Right)
   ============================================================ */
.sidebar-panel {
    width: 320px;
    flex-shrink: 0;
    background: var(--sidebar-bg);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: var(--transition);
    border-left: 1px solid var(--border);
}

.sidebar-scroll {
    flex: 1;
    overflow-y: auto;
    padding: 20px 16px;
}

.sidebar-section {
    margin-bottom: 24px;
}

.sidebar-section-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-muted);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
}

.sidebar-section-title i {
    color: var(--accent);
    font-size: 11px;
    background: rgba(247,200,18,0.12);
    width: 22px;
    height: 22px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Service Groups — accordion ── */
.services-grid {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.service-group {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.service-group.open {
    border-color: rgba(247,200,18,0.5);
    box-shadow: 0 2px 12px rgba(247,200,18,0.1);
}

/* ── Group header — the accordion toggle button ── */
.service-group-header {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 11px 13px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font);
    text-align: left;
    transition: background 0.15s ease;
}

.service-group-header:hover {
    background: var(--bg-hover);
}

.service-group.open .service-group-header {
    background: linear-gradient(90deg, rgba(247,200,18,0.08), transparent);
    border-bottom: 1px solid var(--border);
}

.group-icon {
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: var(--accent);
    color: var(--accent-text);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    flex-shrink: 0;
}

.service-group.open .group-icon {
    background: linear-gradient(135deg, var(--accent), var(--accent-dark));
    box-shadow: 0 2px 8px rgba(247,200,18,0.4);
}

.group-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.1px;
    flex: 1;
}

.group-count {
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    padding: 1px 7px;
    border-radius: 20px;
    letter-spacing: 0;
    min-width: 22px;
    text-align: center;
}

.service-group.open .group-count {
    background: rgba(247,200,18,0.12);
    border-color: rgba(247,200,18,0.4);
    color: var(--accent-dark);
}

.group-chevron {
    font-size: 11px;
    color: var(--text-muted);
    transition: transform 0.25s ease;
    flex-shrink: 0;
}

.service-group.open .group-chevron {
    transform: rotate(180deg);
    color: var(--accent-dark);
}

/* ── Service list — collapsible ── */
.service-group-list {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 6px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.2s ease;
}

.service-group.open .service-group-list {
    max-height: 500px;
    padding: 6px;
}

/* ── Individual service item ── */
.service-list-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    border-radius: 7px;
    padding: 8px 10px;
    font-size: 12.5px;
    font-weight: 400;
    color: var(--text-secondary);
    font-family: var(--font);
    cursor: pointer;
    transition: all 0.15s ease;
    line-height: 1.3;
    position: relative;
}

.service-list-item::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--border);
    flex-shrink: 0;
    transition: all 0.15s ease;
}

.service-list-item i { display: none; }

.service-list-item span { flex: 1; }

.service-list-item:hover {
    background: var(--bg-hover);
    color: var(--text-primary);
    padding-left: 14px;
}

.service-list-item:hover::before {
    background: var(--accent-dark);
    transform: scale(1.4);
}

.service-list-item.active {
    background: rgba(247,200,18,0.12);
    color: var(--text-primary);
    font-weight: 600;
    padding-left: 14px;
}

.service-list-item.active::before {
    background: var(--accent);
    box-shadow: 0 0 0 3px rgba(247,200,18,0.22);
}

.service-list-item.active::after {
    content: '\f054';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 9px;
    color: var(--accent-dark);
}

/* ── Blog Cards ── */
.blog-card {
    background: var(--bg-card);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.blog-card:last-child { margin-bottom: 0; }

.blog-card:hover {
    border-color: var(--accent);
    background: var(--bg-hover);
}

.blog-card-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(247, 200, 18, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: var(--accent-dark);
    flex-shrink: 0;
}

.blog-card-body { flex: 1; min-width: 0; }

.blog-card h6 {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.blog-card p {
    font-size: 11.5px;
    color: var(--text-secondary);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.blog-card-link {
    color: var(--text-muted);
    font-size: 12px;
    text-decoration: none;
    flex-shrink: 0;
    transition: var(--transition);
}

.blog-card-link:hover { color: var(--accent-dark); }

/* ── FAQ Items ── */
.faq-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    border-radius: 8px;
    padding: 8px 10px;
    margin-bottom: 2px;
    cursor: pointer;
    font-size: 12.5px;
    color: var(--text-secondary);
    font-family: var(--font);
    transition: all 0.15s ease;
    line-height: 1.5;
}

.faq-item:last-child { margin-bottom: 0; }

.faq-item i {
    color: var(--text-muted);
    margin-top: 3px;
    font-size: 11px;
    flex-shrink: 0;
    transition: all 0.15s ease;
}

.faq-item:hover {
    background: var(--bg-hover);
    color: var(--text-primary);
    padding-left: 14px;
}

.faq-item:hover i {
    color: var(--accent-dark);
}

/* ── Quick Topic Chips ── */
.quick-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.topic-chip {
    padding: 7px 14px;
    border-radius: 50px;
    border: 1.5px solid var(--border);
    background: var(--bg-card);
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 500;
    font-family: var(--font);
    cursor: pointer;
    transition: var(--transition);
}

.topic-chip:hover {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--accent-text);
    transform: translateY(-1px);
}

/* ── Empty state ── */
.sidebar-empty {
    font-size: 12.5px;
    color: var(--text-muted);
    padding: 8px 0;
    font-style: italic;
}

/* ── Clear Chat Confirmation Modal ── */
.ez-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.ez-modal-overlay.visible {
    opacity: 1;
    pointer-events: all;
}

.ez-modal {
    background: var(--bg-card);
    border: 1.5px solid var(--border);
    border-radius: 20px;
    padding: 32px 28px 24px;
    max-width: 360px;
    width: 90%;
    text-align: center;
    transform: scale(0.88) translateY(16px);
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 24px 64px rgba(0,0,0,0.22);
}

.ez-modal-overlay.visible .ez-modal {
    transform: scale(1) translateY(0);
}

.ez-modal-icon {
    width: 64px;
    height: 64px;
    border-radius: 18px;
    background: rgba(239,68,68,0.1);
    border: 1.5px solid rgba(239,68,68,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    color: #ef4444;
    margin: 0 auto 18px;
}

.ez-modal-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--text-primary);
    margin-bottom: 8px;
    font-family: var(--font);
}

.ez-modal-desc {
    font-size: 13.5px;
    color: var(--text-secondary);
    line-height: 1.6;
    margin-bottom: 24px;
    font-family: var(--font);
}

.ez-modal-actions {
    display: flex;
    gap: 10px;
}

.ez-modal-btn {
    flex: 1;
    padding: 11px 16px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    font-family: var(--font);
    cursor: pointer;
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1.5px solid transparent;
}

.ez-modal-cancel {
    background: var(--bg-secondary);
    border-color: var(--border);
    color: var(--text-secondary);
}

.ez-modal-cancel:hover {
    background: var(--bg-hover);
    color: var(--text-primary);
    border-color: var(--text-muted);
}

.ez-modal-confirm {
    background: #ef4444;
    border-color: #ef4444;
    color: #fff;
}

.ez-modal-confirm:hover {
    background: #dc2626;
    border-color: #dc2626;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(239,68,68,0.4);
}

/* ============================================================
   RESPONSIVE — Mobile (Native App Feel)
   ============================================================ */
.mobile-sidebar-toggle { display: none; }

@media (max-width: 991.98px) {
    /* Lock page — no page-level scroll, no overscroll bounce */
    body {
        overflow: hidden;
        overscroll-behavior: none;
    }

    /* Respect notch / status bar on iOS & Android */
    .ai-header {
        padding-left: 16px;
        padding-right: 16px;
        padding-top: env(safe-area-inset-top, 0px);
        height: calc(var(--header-height) + env(safe-area-inset-top, 0px));
    }

    /* Main area fills exactly what's left under the header */
    .ai-main {
        height: calc(100vh - var(--header-height) - env(safe-area-inset-top, 0px));
    }

    /* Sidebar hidden on mobile */
    .sidebar-panel { display: none; }

    /* Chat panel stretches to fill the full space */
    .chat-panel {
        height: 100%;
        min-height: 0;
        border-right: none;
        border-bottom: none;
    }

    /* Native-feeling momentum scroll for messages */
    .chat-messages {
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-y: contain;
    }

    /* Input bar sits above the home indicator bar */
    .chat-input-area {
        padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    }

    .btn-back span { display: none; }
    .header-badge .badge-text { display: none; }
}

@media (max-width: 575.98px) {
    .ai-header { padding: 0 14px; }
    .chat-messages { padding: 16px 12px; }
    .chat-input-area {
        padding: 10px 14px calc(12px + env(safe-area-inset-bottom, 0px));
    }
    .chat-input-wrapper { padding: 10px 90px 10px 15px; }
    .welcome-title { font-size: 20px; }
    .welcome-subtitle { font-size: 13px; }
    .welcome-starters { max-width: 100%; }
    .message-bubble-user { max-width: 82vw; }
    .inquiry-form-bubble { max-width: 100%; }
    .message-inner { padding: 0 12px; }

    /* Footer: hide text & separators, show 3 icon circles */
    .footer-label,
    .footer-sep { display: none; }

    .chat-input-footer {
        gap: 10px;
        margin-top: 8px;
    }

    /* Shield info icon circle */
    .chat-input-footer > i.fa-shield-halved {
        width: 32px;
        height: 32px;
        flex-shrink: 0;
        border: 1px solid var(--border);
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 13px;
        color: var(--text-muted);
        margin: 0;
        pointer-events: none;
    }

    /* Visit Website icon circle */
    .chat-input-footer a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        border: 1px solid var(--border);
        font-size: 0;
    }
    .chat-input-footer a i { font-size: 13px; margin: 0; }

    /* Consult button icon circle */
    .chat-input-footer .consult-shortcut {
        width: auto;
        height: 32px;
        border-radius: 50px;
        padding: 0 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        font-size: 12px;
    }
    .chat-input-footer .consult-shortcut i { font-size: 12px; margin: 0; }
    .chat-input-footer .consult-shortcut .footer-label {
        display: inline;
        font-size: 12px;
    }
}

/* ============================================================
   IPHONE-STYLE CHAT — Mobile only (≤ 575px)
   ============================================================ */
@media (max-width: 575.98px) {

    /* iOS system background */
    body.ez-v2 .chat-panel,
    .chat-messages {
        background: #f2f2f7 !important;
    }

    /* Header — slim iOS style */
    .ai-header {
        background: rgba(249,249,249,0.94) !important;
        backdrop-filter: blur(20px) !important;
        -webkit-backdrop-filter: blur(20px) !important;
        border-bottom: 0.5px solid rgba(0,0,0,0.15) !important;
        box-shadow: none !important;
    }

    /* Remove full-width AI row tint & borders */
    .message-assistant {
        background: transparent !important;
        border-top: none !important;
        border-bottom: none !important;
        padding: 2px 12px !important;
        align-self: flex-start !important;
        width: auto !important;
        max-width: 80% !important;
    }

    /* AI bubble — grey iMessage style */
    .message-assistant .message-inner {
        padding: 0 !important;
        margin: 0 !important;
        max-width: 100% !important;
        gap: 8px !important;
    }
    .message-assistant .message-bubble-ai {
        background: #e9e9eb !important;
        border-radius: 18px 18px 18px 4px !important;
        padding: 10px 14px !important;
        color: #111 !important;
        max-width: 100% !important;
    }
    .message-assistant .message-bubble-ai .message-text {
        font-size: 14px !important;
        color: #111 !important;
        line-height: 1.5 !important;
    }
    .message-assistant .message-bubble-ai .message-sender {
        font-size: 11px !important;
        color: #888 !important;
        margin-bottom: 3px !important;
    }

    /* Avatar — small circle like iMessage */
    .message-avatar-ai {
        width: 28px !important;
        height: 28px !important;
        border-radius: 50% !important;
        font-size: 12px !important;
        background: #1c1c1e !important;
        flex-shrink: 0 !important;
    }

    /* User message row — right side, no extra padding */
    .message-user {
        padding: 2px 12px !important;
        justify-content: flex-end !important;
    }
    .message-user .message-inner {
        padding: 0 !important;
        margin: 0 !important;
        max-width: 100% !important;
        justify-content: flex-end !important;
    }

    /* User bubble — yellow iMessage style, tail on right */
    .message-bubble-user {
        background: #f7c812 !important;
        background: linear-gradient(135deg, #f7c812, #f0b800) !important;
        color: #1a1a1a !important;
        border-radius: 18px 18px 4px 18px !important;
        padding: 10px 14px !important;
        max-width: 78vw !important;
        font-size: 14px !important;
        box-shadow: 0 1px 3px rgba(0,0,0,0.12) !important;
    }
    .message-bubble-user .message-text,
    .message-bubble-user .message-time {
        color: #1a1a1a !important;
    }

    /* Hide user avatar on mobile */
    .message-avatar-user { display: none !important; }

    /* Timestamps — iOS style */
    .message-time {
        font-size: 11px !important;
        opacity: 0.55 !important;
        margin-top: 3px !important;
    }

    /* Input bar — iOS rounded pill */
    body.ez-v2 .chat-input-area,
    .chat-input-area {
        background: rgba(249,249,249,0.94) !important;
        backdrop-filter: blur(20px) !important;
        -webkit-backdrop-filter: blur(20px) !important;
        border-top: 0.5px solid rgba(0,0,0,0.15) !important;
        padding: 8px 12px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    }
    .chat-input-wrapper {
        background: #fff !important;
        border: 1px solid #ddd !important;
        border-radius: 22px !important;
        padding: 8px 48px 8px 14px !important;
        box-shadow: 0 1px 4px rgba(0,0,0,0.06) !important;
    }
    .chat-input,
    body.ez-v2 .chat-input {
        font-size: 15px !important;
        background: transparent !important;
        min-height: 20px !important;
    }

    /* Send button — iOS blue circle */
    .send-btn {
        width: 32px !important;
        height: 32px !important;
        border-radius: 50% !important;
        background: #f7c812 !important;
        bottom: 6px !important;
        right: 8px !important;
    }

    /* Messages padding */
    .chat-messages {
        padding: 12px 0 !important;
        gap: 2px !important;
    }
}

/* ============================================================
   WEBSITE AUDIT REPORT
   ============================================================ */

/* ── Scan indicator ── */
.audit-scan-indicator {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0 2px;
}

.audit-scan-spinner {
    font-size: 22px;
    color: var(--accent);
    animation: auditSpin 1.4s linear infinite;
}

@keyframes auditSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.audit-scan-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 13.5px;
}

.audit-scan-text strong { color: var(--text-primary); }
.audit-scan-text span   { color: var(--text-muted); font-size: 12px; }

/* ── Report wrapper ── */
.audit-report {
    display: flex;
    flex-direction: column;
    gap: 14px;
    font-size: 13px;
    line-height: 1.6;
}

/* ── Header ── */
.ar-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 12px;
    border-bottom: 1.5px solid var(--border);
}

.ar-header-left {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    min-width: 0;
}

.ar-header-icon {
    width: 38px;
    height: 38px;
    background: var(--accent);
    color: var(--accent-text);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.ar-header-info { min-width: 0; }

.ar-domain {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ar-url {
    font-size: 11px;
    color: var(--text-muted);
    text-decoration: none;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 260px;
    transition: color 0.15s;
}
.ar-url:hover { color: var(--accent-dark); }

.ar-timestamp {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 3px;
}

/* ── Grade badge ── */
.ar-grade {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    font-weight: 800;
    color: #fff;
    flex-shrink: 0;
    box-shadow: 0 3px 12px rgba(0,0,0,0.18);
    letter-spacing: -0.5px;
}

/* ── Score rings ── */
.ar-scores-row {
    display: flex;
    gap: 18px;
    justify-content: center;
    padding: 4px 0;
}

.ar-score-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
}

.ar-ring {
    --pct: 0;
    --sc: #22c55e;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: conic-gradient(var(--sc) calc(var(--pct) * 1%), var(--border) 0%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.ar-ring::after {
    content: '';
    position: absolute;
    inset: 8px;
    background: var(--bg-card);
    border-radius: 50%;
}

[data-theme="dark"] .ar-ring::after { background: var(--bg-card); }

.ar-ring-num {
    position: relative;
    z-index: 1;
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1;
}

.ar-ring-label {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ── Meta chips ── */
.ar-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ar-chip {
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 11.5px;
    font-weight: 500;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    color: var(--text-secondary);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.ar-chip-good { background: rgba(34,197,94,0.1); border-color: rgba(34,197,94,0.3); color: #16a34a; }
.ar-chip-bad  { background: rgba(239,68,68,0.1); border-color: rgba(239,68,68,0.3); color: #dc2626; }

[data-theme="dark"] .ar-chip-good { color: #4ade80; }
[data-theme="dark"] .ar-chip-bad  { color: #f87171; }

/* ── Sections ── */
.ar-section { display: flex; flex-direction: column; gap: 8px; }

.ar-section-hd {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding-bottom: 5px;
    border-bottom: 1.5px solid var(--border);
}

.ar-section-count {
    margin-left: auto;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 1px 8px;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: none;
    letter-spacing: 0;
}

/* ── Issues ── */
.ar-issues-list { display: flex; flex-direction: column; gap: 6px; }

.ar-issue {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 9px 11px;
    border-radius: 8px;
    border: 1px solid;
    font-size: 12.5px;
    line-height: 1.5;
}

.ar-issue-high {
    background: rgba(239,68,68,0.05);
    border-color: rgba(239,68,68,0.2);
}

.ar-issue-med {
    background: rgba(245,158,11,0.05);
    border-color: rgba(245,158,11,0.2);
}

[data-theme="dark"] .ar-issue-high { background: rgba(239,68,68,0.08); border-color: rgba(239,68,68,0.25); }
[data-theme="dark"] .ar-issue-med  { background: rgba(245,158,11,0.08); border-color: rgba(245,158,11,0.25); }

.ar-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
    margin-top: 1px;
}

.ar-badge-high { background: #fee2e2; color: #dc2626; }
.ar-badge-med  { background: #fef3c7; color: #d97706; }

[data-theme="dark"] .ar-badge-high { background: rgba(220,38,38,0.2); color: #f87171; }
[data-theme="dark"] .ar-badge-med  { background: rgba(217,119,6,0.2);  color: #fbbf24; }

.ar-issue-text { color: var(--text-secondary); }
.ar-issue-text strong { color: var(--text-primary); font-weight: 600; }

/* ── Check rows ── */
.ar-checks-list { display: flex; flex-direction: column; gap: 1px; }

.ar-check-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 9px 11px;
    border-radius: 8px;
    border: 1px solid transparent;
    transition: background 0.15s;
}

.ar-check-row:hover { background: var(--bg-hover); }

.chk-good { border-color: transparent; }
.chk-warn { border-color: transparent; }
.chk-err  { border-color: transparent; }

.ar-check-icon {
    font-size: 14px;
    margin-top: 2px;
    flex-shrink: 0;
}

.chk-good .ar-check-icon { color: #22c55e; }
.chk-warn .ar-check-icon { color: #f59e0b; }
.chk-err  .ar-check-icon { color: #ef4444; }

.ar-check-body { min-width: 0; flex: 1; }

.ar-check-label {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
}

.ar-check-val {
    font-size: 11.5px;
    color: var(--text-secondary);
    margin: 1px 0;
    word-break: break-all;
}

.ar-check-msg {
    font-size: 11.5px;
    color: var(--text-muted);
    line-height: 1.4;
}

/* ── Strengths ── */
.ar-strengths {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ar-strength-chip {
    padding: 4px 11px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    background: rgba(34,197,94,0.08);
    border: 1px solid rgba(34,197,94,0.25);
    color: #16a34a;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

[data-theme="dark"] .ar-strength-chip {
    background: rgba(34,197,94,0.1);
    border-color: rgba(34,197,94,0.2);
    color: #4ade80;
}

/* ── CTA ── */
.ar-cta {
    background: linear-gradient(135deg, rgba(247,200,18,0.12) 0%, rgba(247,200,18,0.04) 100%);
    border: 1.5px solid rgba(247,200,18,0.3);
    border-radius: 12px;
    padding: 16px;
    text-align: center;
}

.ar-cta-text {
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: 11px;
}

.ar-cta-text strong { color: var(--text-primary); }

.ar-cta-btn {
    background: var(--accent);
    color: var(--accent-text);
    border: none;
    padding: 10px 22px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font);
}

.ar-cta-btn:hover {
    background: var(--accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(247,200,18,0.35);
}

/* ── Audit disclaimer ── */
.ar-disclaimer {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.5;
    padding: 8px 10px;
    border-radius: 7px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    display: flex;
    gap: 7px;
    align-items: flex-start;
}

.ar-disclaimer i { margin-top: 1px; flex-shrink: 0; font-size: 12px; }
.ar-disclaimer strong { color: var(--text-secondary); }

/* ── Section headings inside AI messages (service replies) ── */
.message-text h5.ai-heading {
    display: block;
}

/* ── Info check row ── */
.chk-info .ar-check-icon { color: #3b82f6; }

[data-theme="dark"] .chk-info .ar-check-icon { color: #60a5fa; }

/* ── Priority Actions box ── */
.ar-priority-box {
    background: linear-gradient(135deg, rgba(239,68,68,0.06) 0%, rgba(245,158,11,0.04) 100%);
    border: 1.5px solid rgba(239,68,68,0.22);
    border-radius: 12px;
    padding: 13px 14px;
}

[data-theme="dark"] .ar-priority-box {
    background: rgba(239,68,68,0.07);
    border-color: rgba(239,68,68,0.25);
}

.ar-priority-hd {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #dc2626;
    margin-bottom: 10px;
}

[data-theme="dark"] .ar-priority-hd { color: #f87171; }

.ar-priority-hd i { font-size: 11px; }

.ar-priority-list { display: flex; flex-direction: column; gap: 8px; }

.ar-priority-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.ar-priority-num {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #dc2626;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 1px;
}

[data-theme="dark"] .ar-priority-num { background: #b91c1c; }

.ar-priority-label {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.4;
}

.ar-priority-msg {
    font-size: 11.5px;
    color: var(--text-secondary);
    line-height: 1.4;
    margin-top: 1px;
}

/* ── Action buttons row ── */
.ar-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ar-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 600;
    font-family: var(--font);
    cursor: pointer;
    border: 1.5px solid;
    transition: all 0.15s ease;
    line-height: 1;
}

.ar-btn-secondary {
    background: var(--bg-secondary);
    border-color: var(--border);
    color: var(--text-secondary);
}

.ar-btn-secondary:hover {
    background: var(--bg-hover);
    border-color: var(--accent);
    color: var(--text-primary);
    transform: translateY(-1px);
}

.ar-btn-primary {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--accent-text);
}

.ar-btn-primary:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(247,200,18,0.35);
}

/* ── Email form ── */
.ar-email-form {
    display: none;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ar-email-input {
    flex: 1;
    min-width: 180px;
    padding: 7px 12px;
    border-radius: 8px;
    border: 1.5px solid var(--border);
    background: var(--bg-card);
    color: var(--text-primary);
    font-size: 13px;
    font-family: var(--font);
    outline: none;
    transition: border-color 0.2s ease;
}

.ar-email-input:focus { border-color: var(--accent); }
.ar-email-input::placeholder { color: var(--text-muted); }

[data-theme="dark"] .ar-email-input {
    background: var(--bg-input);
    border-color: rgba(255,255,255,0.1);
}

/* ── Email success ── */
.ar-email-success {
    display: none;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #16a34a;
    padding: 6px 0;
}

.ar-email-success i { font-size: 16px; }

[data-theme="dark"] .ar-email-success { color: #4ade80; }

/* ── Lead Gate — bottom 85% blur + overlay ── */
.ar-gated-wrapper {
    border-radius: 8px;
    display: flex;
    flex-direction: column;
}

/* Show only a small peek of the audit content */
.ar-gated-body {
    filter: blur(3.5px);
    user-select: none;
    pointer-events: none;
    opacity: 0.55;
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-height: 90px;
    overflow: hidden;
    position: relative;
}

/* Fade-out gradient at the bottom of the peek */
.ar-gated-body::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(255, 255, 255, 0)   0%,
        rgba(255, 255, 255, 0)   40%,
        rgba(255, 255, 255, 0.9) 80%,
        rgba(255, 255, 255, 1)   100%
    );
    pointer-events: none;
}

[data-theme="dark"] .ar-gated-body::after {
    background: linear-gradient(
        to bottom,
        rgba(18, 18, 26, 0)   0%,
        rgba(18, 18, 26, 0)   40%,
        rgba(18, 18, 26, 0.9) 80%,
        rgba(18, 18, 26, 1)   100%
    );
}

/* CTA sits directly below the peek — no absolute positioning, no gap */
.ar-gate-overlay {
    background: #fff;
    padding: 2px;
    border-radius: 0 0 8px 8px;
}

[data-theme="dark"] .ar-gate-overlay {
    background: var(--bg-card, #12121a);
}

.ar-gate-cta {
    background: #fff;
    border: 1.5px solid rgba(247, 200, 18, 0.45);
    border-radius: 12px;
    padding: 20px 18px 16px;
    text-align: center;
    box-shadow: 0 -10px 32px rgba(247, 200, 18, 0.18), 0 4px 20px rgba(0,0,0,0.08);
}

[data-theme="dark"] .ar-gate-cta {
    background: var(--bg-card);
    border-color: rgba(247, 200, 18, 0.45);
    box-shadow: 0 -10px 32px rgba(247, 200, 18, 0.22), 0 4px 20px rgba(0,0,0,0.25);
}

.ar-gate-lock {
    width: 48px;
    height: 48px;
    background: rgba(247, 200, 18, 0.12);
    border: 1.5px solid rgba(247, 200, 18, 0.35);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 10px;
    color: #c49a00;
    font-size: 19px;
}

[data-theme="dark"] .ar-gate-lock { background: rgba(247, 200, 18, 0.18); }

.ar-gate-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 6px;
}

.ar-gate-subtitle {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.55;
    margin-bottom: 14px;
}

.ar-gate-subtitle strong { color: var(--text-primary); }

.ar-gate-btn {
    display: block;
    width: 100%;
    background: #f7c812;
    color: #1a1a1a;
    border: none;
    padding: 11px 20px;
    border-radius: 8px;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s, transform 0.15s;
    margin-bottom: 12px;
}

.ar-gate-btn:hover {
    background: #e0b500;
    transform: translateY(-1px);
}

.ar-gate-trust {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
    font-size: 11px;
    color: var(--text-muted);
}

.ar-gate-trust span {
    display: flex;
    align-items: center;
    gap: 4px;
}

.ar-gate-trust i { color: #c49a00; font-size: 11px; }

/* ── Print styles ── */
@media print {
    .ar-actions,
    .ar-email-form,
    .ar-email-success,
    .ar-cta-btn {
        display: none !important;
    }

    .audit-report {
        font-size: 12px;
    }

    .ar-ring {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }
}

/* Compact audit report on very small screens */
@media (max-width: 480px) {
    .ar-scores-row { gap: 12px; }
    .ar-ring { width: 64px; height: 64px; }
    .ar-ring-num { font-size: 15px; }
    .ar-grade { width: 44px; height: 44px; font-size: 16px; }
    .ar-domain { font-size: 13px; }
    .ar-actions { gap: 6px; }
    .ar-btn { padding: 6px 11px; font-size: 12px; }
}


/* ════════════════════════════════════════════════════════════════
   V2 REDESIGN  —  body.ez-v2
   ════════════════════════════════════════════════════════════════ */

/* ── Base ── */
body.ez-v2 { background: #f5f4f0; }

/* ── Header ── */
body.ez-v2 .ai-header {
    height: 58px;
    background: #fff;
    border-bottom: 1px solid #e8e8e8;
    padding: 0 22px;
    box-shadow: none;
}
body.ez-v2 .header-inner {
    height: 58px;
    max-width: 100%;
    padding: 0;
}

/* Brand */
.v2-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}
.v2-logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
}
.v2-logo-img {
    height: 34px;
    width: auto;
    object-fit: contain;
}
.v2-logo-fallback {
    display: flex;
    align-items: center;
    gap: 10px;
}
.v2-logo-icon {
    width: 38px;
    height: 38px;
    background: #1a1a1a;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #f7c812;
    font-size: 17px;
    flex-shrink: 0;
}
.v2-brand-name {
    font-size: 17px;
    font-weight: 800;
    color: #111;
    line-height: 1.1;
}
.v2-brand-sub {
    font-size: 10px;
    color: #999;
    font-weight: 500;
    letter-spacing: 0.05em;
}
.v2-ai-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: #f7c812;
    color: #1a1a1a;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.04em;
    padding: 5px 12px;
    border-radius: 20px;
    white-space: nowrap;
}
.v2-badge-dot {
    width: 7px;
    height: 7px;
    background: #1a1a1a;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Header controls */
body.ez-v2 .header-controls { gap: 6px; }
.v2-hbtn {
    width: 36px;
    height: 36px;
    border: 1.5px solid #e5e5e5;
    background: #fff;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #666;
    font-size: 13.5px;
    transition: all 0.15s;
}
.v2-hbtn:hover { background: #f5f5f5; color: #111; border-color: #ccc; }
.v2-hbtn-danger:hover { background: #fee2e2; color: #dc2626; border-color: #fecaca; }
.v2-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #111;
    color: #fff !important;
    font-size: 13px;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 22px;
    text-decoration: none !important;
    transition: background 0.15s;
    margin-left: 4px;
    white-space: nowrap;
}
.v2-back-btn:hover { background: #333; color: #fff !important; }

/* ── Main layout ── */
body.ez-v2 .ai-main { height: calc(100vh - 58px); }

/* ── Chat panel ── */
body.ez-v2 .chat-panel {
    background: #ffffff;
    border-right: 1px solid #e5e5e5;
}

/* ── Welcome screen ── */
body.ez-v2 .chat-welcome {
    padding: 36px 24px 16px;
    gap: 0;
}

/* Robot avatar */
.v2-avatar-wrap {
    position: relative;
    width: 80px;
    height: 80px;
    margin: 0 auto 28px;
}
.v2-avatar-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1.5px solid rgba(0,0,0,0.06);
    background: radial-gradient(circle at 50% 65%, rgba(247,200,18,0.14) 0%, transparent 68%);
}
.v2-avatar-disk {
    position: absolute;
    inset: 10px;
    background: #1a1a1a;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 28px rgba(0,0,0,0.38), inset 0 1px 0 rgba(255,255,255,0.06);
}
.v2-avatar-center {
    width: 50px;
    height: 50px;
    background: #f7c812;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #1a1a1a;
}

/* Welcome heading */
.v2-welcome-title {
    font-size: 40px;
    font-weight: 800;
    color: #111;
    line-height: 1.15;
    letter-spacing: -0.025em;
    margin-bottom: 14px;
}
.v2-ai-italic {
    font-style: italic;
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 600;
    color: #111;
}
.v2-welcome-sub {
    font-size: 12.5px;
    color: #777;
    line-height: 1.65;
    max-width: 490px;
    margin: 0 auto 28px;
}

/* Starter chips */
.v2-starters {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    justify-content: center;
    max-width: 800px;
    margin: 0 auto;
}
@media (max-width: 575.98px) {
    .v2-starters { display: none; }
}
.v2-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 17px;
    border: 1.5px solid #ddd;
    background: #fff;
    border-radius: 22px;
    font-size: 12px;
    font-weight: 500;
    color: #333;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
    font-family: var(--font);
}
.v2-chip:hover {
    border-color: #bbb;
    background: #fafafa;
    color: #111;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.v2-chip i { font-size: 9px; color: #aaa; transition: color 0.15s; }
.v2-chip:hover i { color: #666; }

/* ── Input area v2 ── */
body.ez-v2 .chat-input-area {
    background: #ffffff;
    border-top: none;
    padding: 0 24px 16px;
}
body.ez-v2 .chat-input-wrapper {
    flex-direction: row;
    align-items: center;
    border-radius: 14px;
    padding: 10px 10px 10px 18px;
    gap: 8px;
    background: #fff;
    border: 1.5px solid #e0e0e0;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
body.ez-v2 .chat-input-wrapper:focus-within {
    border-color: #c5c5c5;
    box-shadow: 0 4px 20px rgba(0,0,0,0.09);
}
body.ez-v2 .chat-input {
    min-height: auto;
    font-size: 14.5px;
    line-height: 1.5;
    padding: 0;
}
body.ez-v2 .chat-input::placeholder { color: #aaa; }
body.ez-v2 .send-btn {
    position: static;
    width: 36px;
    height: 36px;
    background: #111;
    color: #fff;
    border-radius: 9px;
    font-size: 13px;
    flex-shrink: 0;
    box-shadow: none;
    display: flex;
    align-items: center;
    justify-content: center;
}
body.ez-v2 .send-btn:hover:not(:disabled) { background: #333; color: #fff; transform: none; box-shadow: none; }
body.ez-v2 .send-btn:disabled { background: #ccc; color: #fff; opacity: 0.5; }
body.ez-v2 .chat-input-footer {
    justify-content: center;
    font-size: 11.5px;
    color: #bbb;
    padding: 7px 0 0;
    gap: 4px;
}
body.ez-v2 .chat-input-footer a { color: #bbb; font-size: 11.5px; }
body.ez-v2 .chat-input-footer a:hover { color: #777; }
body.ez-v2 .consult-shortcut { color: #bbb; font-size: 11.5px; background: none; border: none; cursor: pointer; padding: 0; display: inline-flex; align-items: center; gap: 6px; }
body.ez-v2 .consult-shortcut:hover { color: #777; }
body.ez-v2 .footer-sep { color: #ccc; }

/* ── Chat messages ── */
body.ez-v2 .chat-messages { padding: 24px 24px;  }

/* ── Sidebar v2 ── */
body.ez-v2 .sidebar-panel {
    width: 340px;
    min-width: 340px;
    background: #f5f4f0;
    border-left: 1px solid #e5e5e5;
}
body.ez-v2 .sidebar-scroll { padding: 0; }
body.ez-v2 .sidebar-section { margin-bottom: 0; padding: 0; }
body.ez-v2 .services-grid { padding: 0 10px 14px; gap: 3px; }

/* Status bar */
.v2-sb-status {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.09em;
    color: #999;
    text-transform: uppercase;
    border-bottom: 1px solid #f0f0f0;
}
.v2-sb-status-dot {
    width: 7px;
    height: 7px;
    background: #22c55e;
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px rgba(34,197,94,0.2);
}

/* Sidebar header */
.v2-sb-header {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 16px 18px 10px;
}
.v2-sb-icon {
    width: 34px;
    height: 34px;
    background: #f7c812;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1a1a1a;
    font-size: 14px;
    flex-shrink: 0;
}
.v2-sb-title {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.07em;
    color: #111;
    text-transform: uppercase;
}

/* Search box */
.v2-sb-search {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 14px 10px;
    border: 1.5px solid #ebebeb;
    border-radius: 10px;
    padding: 8px 10px;
    background: #fafafa;
    transition: border-color 0.15s;
}
.v2-sb-search:focus-within { border-color: #ccc; background: #fff; }
.v2-sb-search-icon { color: #bbb; font-size: 12px; flex-shrink: 0; }
.v2-sb-search-input {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 12.5px;
    color: #333;
    font-family: var(--font);
}
.v2-sb-search-input::placeholder { color: #bbb; }
.v2-sb-search-kbd {
    font-size: 10px;
    color: #ccc;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
    padding: 1px 5px;
    font-family: monospace;
    flex-shrink: 0;
    background: #fff;
}

/* ── Service group cards v2 ── */
body.ez-v2 .service-group {
    border: 1.5px solid #efefef;
    border-radius: 12px;
    background: #fff;
    box-shadow: none;
    overflow: hidden;
}
body.ez-v2 .service-group.open {
    border-color: #e0e0e0;
    box-shadow: 0 1px 6px rgba(0,0,0,0.05);
}
body.ez-v2 .service-group-header {
    padding: 10px 12px;
    gap: 10px;
    transition: background 0.12s;
}
body.ez-v2 .service-group-header:hover { background: #fafafa; }

/* Dark app-style icons — each group gets a unique dark tone */
body.ez-v2 .group-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    font-size: 13px;
    flex-shrink: 0;
}
body.ez-v2 .service-group .group-icon { background: #111; color: #f7c812; }

body.ez-v2 .group-label { font-size: 13px; font-weight: 600; color: #111; }
body.ez-v2 .group-count {
    font-size: 11px;
    font-weight: 700;
    color: #999;
    background: #f5f5f5;
    border-radius: 10px;
    padding: 2px 7px;
    min-width: 22px;
    text-align: center;
}
body.ez-v2 .group-chevron { color: #bbb; font-size: 11px; }
body.ez-v2 .service-group.open .group-chevron { color: #666; transform: rotate(180deg); }

/* Service list items */
body.ez-v2 .service-group-list {
    padding: 0 27px;
    margin: 0px 8px;
}
body.ez-v2 .service-list-item {
    padding: 5px 0;
    font-size: 13px;
    color: #555;
    background: none;
    border: none;
    text-align: left;
    width: 100%;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color 0.12s;
    font-family: var(--font);
}
body.ez-v2 .service-list-item::before {
    content: '●';
    font-size: 6px;
    color: #ddd;
    flex-shrink: 0;
}
body.ez-v2 .service-list-item:hover { color: #111; }
body.ez-v2 .service-list-item:hover::before { color: #f7c812; }
body.ez-v2 .service-list-item.active { color: #111; font-weight: 600; }
body.ez-v2 .service-list-item.active::before { color: #f7c812; }

/* ── Dark mode v2 overrides ── */
[data-theme="dark"] body.ez-v2,
[data-theme="dark"] .ez-v2 {
    background: #0d0d0d;
}
[data-theme="dark"] body.ez-v2 .ai-header,
[data-theme="dark"] body.ez-v2 .chat-input-wrapper,
[data-theme="dark"] body.ez-v2 .service-group,
[data-theme="dark"] body.ez-v2 .v2-chip {
    background: var(--bg-card);
    border-color: var(--border);
}
[data-theme="dark"] body.ez-v2 .ai-header { background: var(--header-bg); }
[data-theme="dark"] body.ez-v2 .chat-panel { background: var(--bg-primary); }
[data-theme="dark"] body.ez-v2 .chat-input-area { background: var(--bg-primary); }
[data-theme="dark"] body.ez-v2 .v2-welcome-title,
[data-theme="dark"] body.ez-v2 .v2-ai-italic,
[data-theme="dark"] body.ez-v2 .group-label { color: var(--text-primary); }
[data-theme="dark"] body.ez-v2 .v2-welcome-sub,
[data-theme="dark"] body.ez-v2 .v2-sb-title { color: var(--text-secondary); }
[data-theme="dark"] body.ez-v2 .v2-back-btn { background: var(--bg-card); color: var(--text-primary) !important; border: 1.5px solid var(--border); }
[data-theme="dark"] body.ez-v2 .v2-hbtn { background: var(--bg-card); border-color: var(--border); color: var(--text-secondary); }
[data-theme="dark"] body.ez-v2 .v2-chip { color: var(--text-secondary); }
[data-theme="dark"] body.ez-v2 .v2-sb-search { background: var(--bg-secondary); border-color: var(--border); }
[data-theme="dark"] body.ez-v2 .v2-sb-search-input { color: var(--text-primary); }
[data-theme="dark"] body.ez-v2 .v2-sb-status { border-color: var(--border); color: var(--text-muted); }
[data-theme="dark"] body.ez-v2 .sidebar-panel { background: var(--sidebar-bg); border-color: var(--border); }
[data-theme="dark"] body.ez-v2 .v2-sb-search-kbd { background: var(--bg-secondary); border-color: var(--border); color: var(--text-muted); }
[data-theme="dark"] body.ez-v2 .send-btn { background: #f7c812; color: #111; }
[data-theme="dark"] body.ez-v2 .send-btn:hover { background: #e6b800; }
[data-theme="dark"] body.ez-v2 .group-count { background: var(--bg-secondary); color: var(--text-muted); }
[data-theme="dark"] body.ez-v2 .service-list-item { color: var(--text-secondary); }
[data-theme="dark"] body.ez-v2 .service-list-item:hover { color: var(--text-primary); }

/* ── Sidebar extra sections (Blogs / FAQs / Topics) ── */
.v2-sb-section {
    padding: 0 14px 16px;
    border-top: 1px solid #efefef;
    margin-top: 4px;
}

.v2-sb-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #888;
    padding: 14px 0 10px;
}

.v2-sb-section-icon {
    width: 22px;
    height: 22px;
    background: rgba(247,200,18,0.15);
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #c49a00;
    font-size: 10px;
    flex-shrink: 0;
}

/* Blog cards in v2 sidebar */
body.ez-v2 .blog-card {
    background: #fff;
    border: 1.5px solid #efefef;
    border-radius: 10px;
    margin-bottom: 6px;
}
body.ez-v2 .blog-card:hover {
    border-color: #ddd;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

/* FAQ items in v2 sidebar */
body.ez-v2 .faq-item {
    background: #fff;
    border: 1.5px solid #efefef;
    border-radius: 9px;
    margin-bottom: 5px;
    font-size: 12.5px;
    color: #444;
    padding: 8px 12px;
    transition: all 0.15s;
}
body.ez-v2 .faq-item:hover {
    border-color: #ddd;
    color: #111;
    background: #fafafa;
}
body.ez-v2 .faq-item i { color: #f7c812; }

/* Quick topics chips in v2 sidebar */
.v2-quick-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.v2-topic-chip {
    padding: 5px 11px;
    background: #fff;
    border: 1.5px solid #e8e8e8;
    border-radius: 16px;
    font-size: 11.5px;
    font-weight: 500;
    color: #555;
    cursor: pointer;
    transition: all 0.15s;
    font-family: var(--font);
}
.v2-topic-chip:hover {
    background: #f7c812;
    border-color: #f7c812;
    color: #1a1a1a;
}

/* Empty state */
body.ez-v2 .sidebar-empty {
    font-size: 12px;
    color: #bbb;
    text-align: center;
    padding: 10px 0;
}

/* Dark mode for extra sections */
[data-theme="dark"] .v2-sb-section { border-color: var(--border); }
[data-theme="dark"] .v2-sb-section-title { color: var(--text-muted); }
[data-theme="dark"] body.ez-v2 .blog-card,
[data-theme="dark"] body.ez-v2 .faq-item,
[data-theme="dark"] .v2-topic-chip {
    background: var(--bg-card);
    border-color: var(--border);
    color: var(--text-secondary);
}
[data-theme="dark"] body.ez-v2 .faq-item:hover,
[data-theme="dark"] body.ez-v2 .blog-card:hover { border-color: rgba(247,200,18,0.35); }
[data-theme="dark"] .v2-topic-chip:hover { background: #f7c812; color: #111; border-color: #f7c812; }

/* ── Audit chip style ── */
.v2-chip.v2-chip-audit {
    background: #fff;
    color: #111;
    border-color: #ddd;
    font-weight: 600;
}
.v2-chip.v2-chip-audit:hover {
    background: #f5f5f5;
    border-color: #bbb;
    transform: translateY(-1px);
}
.v2-topic-chip.v2-topic-chip-audit {
    background: #fff;
    color: #333;
    border-color: #ddd;
    font-weight: 600;
}
.v2-topic-chip.v2-topic-chip-audit:hover {
    background: #f7c812;
    border-color: #f7c812;
    color: #111;
}

/* Highlighted "AI Growth Analyzer" chip */
.v2-chip.v2-chip-highlight {
    background: #111;
    color: #f7c812;
    border-color: #111;
    font-weight: 700;
}
.v2-chip.v2-chip-highlight:hover {
    background: #333;
    border-color: #333;
    color: #f7c812;
    transform: translateY(-1px);
}
.v2-chip.v2-chip-highlight i { color: #f7c812; }

.v2-topic-chip.v2-topic-chip-highlight {
    background: #111;
    color: #f7c812;
    border-color: #111;
    font-weight: 700;
}
.v2-topic-chip.v2-topic-chip-highlight:hover {
    background: #333;
    border-color: #333;
    color: #f7c812;
}

/* ── V2 Responsive ── */
@media (max-width: 768px) {
    body.ez-v2 .sidebar-panel { display: none; }
    .v2-welcome-title { font-size: 28px; }
    .v2-welcome-sub br { display: none; }
    body.ez-v2 .chat-input-area { padding: 0 12px 14px; }
    body.ez-v2 .chat-messages { padding: 16px 12px; }
}

/* Short/mini-laptop viewports — compact the welcome screen so the
   input bar never gets pushed out of view */
@media (max-height: 700px) {
    body.ez-v2 .chat-welcome { padding: 18px 24px 10px; }
    .v2-avatar-wrap { width: 72px; height: 72px; margin: 0 auto 14px; }
    .v2-welcome-title { font-size: 26px; margin-bottom: 8px; }
    .v2-welcome-sub { margin: 0 auto 16px; }
    .v2-starters { gap: 6px; }
    .v2-chip { padding: 7px 13px; }
}

/* ================================================================
   INQUIRY FORM — .iq-* components
   ================================================================ */
.iq-form-card {
    background: linear-gradient(145deg, #f8faff 0%, #ffffff 60%, #fffdf0 100%);
    border: 1.5px solid #e4eaf5;
    border-radius: 18px;
    padding: 22px 20px 18px;
    margin-top: 6px;
    box-shadow: 0 2px 12px rgba(99,120,200,0.07), 0 8px 32px rgba(0,0,0,0.05);
    font-family: var(--font);
    position: relative;
    overflow: hidden;
}
.iq-form-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #f7c812 0%, #ffdd55 50%, #f7a812 100%);
    border-radius: 18px 18px 0 0;
}
.iq-form-top {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 18px;
    padding-bottom: 15px;
    border-bottom: 1px solid rgba(0,0,0,0.06);
}
.iq-form-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    background: linear-gradient(135deg, #f7c812 0%, #ffe066 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    color: #1a1a1a;
    flex-shrink: 0;
    box-shadow: 0 3px 10px rgba(247,200,18,0.3);
}
.iq-form-title {
    font-size: 15px;
    font-weight: 700;
    color: #0f1826;
    line-height: 1.3;
    margin-bottom: 3px;
    letter-spacing: -0.1px;
}
.iq-form-sub {
    font-size: 12px;
    color: #7a8499;
    line-height: 1.45;
}

.iq-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.iq-field-full { width: 100%; }
.iq-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    width: 100%;
}
.iq-input {
    width: 100%;
    box-sizing: border-box;
    height: 41px;
    padding: 0 13px;
    border: 1.5px solid #dde3f0;
    border-radius: 10px;
    font-size: 13px;
    font-family: var(--font);
    color: #1a1a2e;
    background: #ffffff;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.iq-input:focus {
    border-color: #f7c812;
    box-shadow: 0 0 0 3px rgba(247,200,18,0.15), 0 1px 3px rgba(0,0,0,0.04);
    background: #fffef5;
}
.iq-input::placeholder { color: #b0b8cc; }
.iq-select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}
.iq-textarea {
    height: auto;
    padding: 10px 13px;
    resize: vertical;
    min-height: 66px;
}
.iq-submit-btn {
    width: 100%;
    height: 44px;
    background: linear-gradient(135deg, #f7c812 0%, #ffe033 100%);
    color: #1a1200;
    border: none;
    border-radius: 11px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: filter 0.15s, transform 0.12s, box-shadow 0.15s;
    margin-top: 4px;
    box-shadow: 0 3px 14px rgba(247,200,18,0.35);
    letter-spacing: 0.1px;
}
.iq-submit-btn:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(247,200,18,0.4);
}
.iq-submit-btn:active { transform: translateY(0); filter: brightness(0.97); }
.iq-submit-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Dark mode — inquiry form */
[data-theme="dark"] .iq-form-card {
    background: linear-gradient(145deg, #1a1f2e 0%, #161b28 100%);
    border-color: rgba(255,255,255,0.08);
    box-shadow: 0 2px 12px rgba(0,0,0,0.3), 0 8px 32px rgba(0,0,0,0.2);
}
[data-theme="dark"] .iq-form-top { border-color: rgba(255,255,255,0.07); }
[data-theme="dark"] .iq-form-title { color: #eef1f8; }
[data-theme="dark"] .iq-form-sub { color: var(--text-muted); }
[data-theme="dark"] .iq-input {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.1);
    color: var(--text-primary);
    box-shadow: none;
}
[data-theme="dark"] .iq-input:focus {
    border-color: #f7c812;
    background: rgba(247,200,18,0.06);
    box-shadow: 0 0 0 3px rgba(247,200,18,0.12);
}
[data-theme="dark"] .iq-input::placeholder { color: rgba(255,255,255,0.25); }
[data-theme="dark"] .iq-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23aaa' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ================================================================
   GROWTH ANALYZER — Input Form (.ga-*)
   ================================================================ */
.ga-form-card {
    background: #fff;
    border: 1.5px solid #e0e0e0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
    margin-top: 8px;
}
.ga-form-header {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #111;
    padding: 14px 18px;
}
.ga-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    background: #f7c812;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #111;
    flex-shrink: 0;
}
.ga-header-text { flex: 1; }
.ga-title {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
}
.ga-sub {
    font-size: 11.5px;
    color: rgba(255,255,255,0.55);
    margin-top: 2px;
}
.ga-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(247,200,18,0.15);
    border: 1px solid rgba(247,200,18,0.4);
    color: #f7c812;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 4px 10px;
    border-radius: 20px;
    flex-shrink: 0;
}
.ga-live-dot {
    width: 6px;
    height: 6px;
    background: #f7c812;
    border-radius: 50%;
    animation: livePulse 1.4s ease-in-out infinite;
}
@keyframes livePulse {
    0%,100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.4; transform: scale(0.8); }
}
.ga-form {
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.ga-field { display: flex; flex-direction: column; gap: 5px; }
.ga-label {
    font-size: 11.5px;
    font-weight: 600;
    color: #555;
    font-family: var(--font);
    letter-spacing: 0.01em;
}
.ga-label i { width: 14px; color: #f7c812; }
.ga-req { color: #ef4444; margin-left: 2px; }
.ga-opt { color: #aaa; font-weight: 400; font-size: 10.5px; }
.ga-input {
    width: 100%;
    box-sizing: border-box;
    height: 40px;
    padding: 0 12px;
    border: 1.5px solid #e0e0e0;
    border-radius: 9px;
    font-size: 13px;
    font-family: var(--font);
    color: #111;
    background: #f8f8f8;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    appearance: none;
    -webkit-appearance: none;
}
.ga-input:focus {
    border-color: #f7c812;
    box-shadow: 0 0 0 3px rgba(247,200,18,0.2);
    background: #fff;
}
.ga-input::placeholder { color: #bbb; }
.ga-select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}
.ga-submit-btn {
    width: 100%;
    height: 46px;
    background: #f7c812;
    color: #111;
    border: none;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background 0.15s, transform 0.12s;
    margin-top: 4px;
}
.ga-submit-btn:hover { background: #e6b800; transform: translateY(-1px); }
.ga-submit-btn:disabled { opacity: 0.65; cursor: not-allowed; transform: none; }
.ga-form-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    font-size: 11px;
    color: #aaa;
    font-family: var(--font);
}
.ga-form-note i { color: #f7c812; }

/* Analyzing progress steps */
.ga-analyzing-steps {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 4px 0;
}
.ga-step {
    font-size: 13px;
    color: var(--text-muted);
    font-family: var(--font);
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color 0.3s;
}
.ga-step-active { color: #f7c812; font-weight: 600; }
.ga-step-done { color: #22c55e; }
.ga-step-done i { color: #22c55e; }

/* ================================================================
   GROWTH REPORT — Output (.growth-report / .gr-*)
   ================================================================ */
.growth-report {
    border: 1.5px solid #e0e0e0;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    margin-top: 6px;
}

/* Header */
.gr-header {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #111;
    padding: 14px 18px;
}
.gr-header-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    background: #f7c812;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #111;
    flex-shrink: 0;
}
.gr-header-info { flex: 1; min-width: 0; }
.gr-domain {
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gr-subtitle {
    font-size: 11.5px;
    color: rgba(255,255,255,0.5);
    margin-top: 2px;
}
.gr-ai-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(247,200,18,0.15);
    border: 1px solid rgba(247,200,18,0.4);
    color: #f7c812;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 4px 10px;
    border-radius: 20px;
    flex-shrink: 0;
}
.gr-ai-dot {
    width: 6px;
    height: 6px;
    background: #f7c812;
    border-radius: 50%;
    animation: livePulse 1.4s ease-in-out infinite;
}

/* Gated content wrapper */
.gr-gated-wrapper {
    position: relative;
    overflow: hidden;
}
.gr-gated-body {
    padding: 18px;
    max-height: 480px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to bottom, #000 40%, transparent 78%);
    mask-image: linear-gradient(to bottom, #000 40%, transparent 78%);
}
.gr-gated-body .ai-heading {
    font-size: 14px;
    font-weight: 700;
    color: #111;
    margin: 14px 0 6px;
    padding: 6px 10px;
    background: #f8f8f8;
    border-left: 3px solid #f7c812;
    border-radius: 0 6px 6px 0;
}
.gr-gated-body .ai-subheading {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    margin: 10px 0 4px;
}
.gr-gated-body p, .gr-gated-body li { font-size: 13px; color: #444; line-height: 1.6; }
.gr-gated-body .ai-list { padding-left: 18px; margin: 6px 0; }
.gr-gated-body strong { color: #111; }

/* Gate overlay */
.gr-gate-overlay {
    position: absolute;
    inset: 0;
    top: 200px;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.92) 28%, #fff 50%);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 0;
}
.gr-gate-cta {
    width: 100%;
    padding: 20px 20px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.gr-gate-lock {
    width: 46px;
    height: 46px;
    background: #111;
    color: #f7c812;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.18);
}
.gr-gate-title {
    font-size: 16px;
    font-weight: 800;
    color: #111;
    font-family: var(--font);
    line-height: 1.3;
}
.gr-gate-sub {
    font-size: 12.5px;
    color: #666;
    max-width: 400px;
    line-height: 1.5;
    font-family: var(--font);
}
.gr-gate-btn {
    background: #f7c812;
    color: #111;
    border: none;
    border-radius: 10px;
    height: 46px;
    padding: 0 28px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: background 0.15s, transform 0.12s;
    box-shadow: 0 4px 14px rgba(247,200,18,0.35);
}
.gr-gate-btn:hover { background: #e6b800; transform: translateY(-1px); }
.gr-gate-features {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 14px;
    font-size: 11.5px;
    color: #555;
    font-family: var(--font);
}
.gr-gate-features i { color: #22c55e; margin-right: 3px; }
.gr-gate-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    font-size: 11.5px;
    color: #aaa;
    font-family: var(--font);
}
.gr-gate-trust i { color: #f7c812; margin-right: 4px; }

/* Dark mode — Growth Analyzer */
[data-theme="dark"] .ga-form-card { background: var(--bg-card); border-color: var(--border); }
[data-theme="dark"] .ga-input {
    background: var(--bg-secondary);
    border-color: var(--border);
    color: var(--text-primary);
}
[data-theme="dark"] .ga-input:focus {
    border-color: #f7c812;
    background: var(--bg-card);
    box-shadow: 0 0 0 3px rgba(247,200,18,0.15);
}
[data-theme="dark"] .ga-input::placeholder { color: var(--text-muted); }
[data-theme="dark"] .ga-label { color: var(--text-secondary); }
[data-theme="dark"] .ga-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23aaa' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
[data-theme="dark"] .growth-report { background: var(--bg-card); border-color: var(--border); }
[data-theme="dark"] .gr-gated-body .ai-heading {
    background: var(--bg-secondary);
    color: var(--text-primary);
}
[data-theme="dark"] .gr-gated-body p,
[data-theme="dark"] .gr-gated-body li { color: var(--text-secondary); }
[data-theme="dark"] .gr-gated-body strong { color: var(--text-primary); }
[data-theme="dark"] .gr-gate-overlay {
    background: linear-gradient(to bottom, rgba(30,30,30,0) 0%, rgba(30,30,30,0.92) 28%, var(--bg-card) 50%);
}
[data-theme="dark"] .gr-gate-title { color: var(--text-primary); }
[data-theme="dark"] .gr-gate-sub { color: var(--text-muted); }
[data-theme="dark"] .gr-gate-lock { background: var(--bg-secondary); }

/* ================================================================
   AUDIT QUICK FORM (.af-*)
   ================================================================ */
.af-card {
    background: #fff;
    border: 1.5px solid #e0e0e0;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.07);
    margin-top: 8px;
}
.af-header {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #111;
    padding: 13px 16px;
}
.af-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
    background: #f7c812;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    color: #111;
    flex-shrink: 0;
}
.af-header-text { flex: 1; }
.af-title { font-size: 13.5px; font-weight: 700; color: #fff; }
.af-sub   { font-size: 11px; color: rgba(255,255,255,0.5); margin-top: 2px; }
.af-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(34,197,94,0.15);
    border: 1px solid rgba(34,197,94,0.4);
    color: #22c55e;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 4px 10px;
    border-radius: 20px;
    flex-shrink: 0;
}
.af-badge-dot {
    width: 6px;
    height: 6px;
    background: #22c55e;
    border-radius: 50%;
    animation: livePulse 1.4s ease-in-out infinite;
}
.af-form { padding: 14px 16px 16px; }
.af-input-row {
    display: flex;
    gap: 8px;
    align-items: center;
}
.af-input {
    flex: 1;
    height: 42px;
    padding: 0 14px;
    border: 1.5px solid #e0e0e0;
    border-radius: 9px;
    font-size: 13px;
    font-family: var(--font);
    color: #111;
    background: #f8f8f8;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    min-width: 0;
}
.af-input:focus {
    border-color: #f7c812;
    box-shadow: 0 0 0 3px rgba(247,200,18,0.2);
    background: #fff;
}
.af-input::placeholder { color: #bbb; }
.af-btn {
    height: 42px;
    padding: 0 20px;
    background: #f7c812;
    color: #111;
    border: none;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.15s, transform 0.12s;
}
.af-btn:hover { background: #e6b800; transform: translateY(-1px); }
.af-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.af-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 12px;
    margin-top: 10px;
    font-size: 11px;
    color: #888;
    font-family: var(--font);
}
.af-checks i { color: #22c55e; margin-right: 3px; }

/* Dark mode */
[data-theme="dark"] .af-card { background: var(--bg-card); border-color: var(--border); }
[data-theme="dark"] .af-input {
    background: var(--bg-secondary);
    border-color: var(--border);
    color: var(--text-primary);
}
[data-theme="dark"] .af-input:focus {
    border-color: #f7c812;
    background: var(--bg-card);
    box-shadow: 0 0 0 3px rgba(247,200,18,0.15);
}
[data-theme="dark"] .af-input::placeholder { color: var(--text-muted); }
[data-theme="dark"] .af-checks { color: var(--text-muted); }

/* ============================================================
   SERVICE OPTIONS CARD (.svc-*)
   ============================================================ */

.svc-card {
    border-radius: 0;
    overflow: hidden;
    background: var(--bg-card);
}

.svc-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: #111;
    color: #fff;
}

[data-theme="dark"] .svc-card-header { background: #000; }

.svc-card-icon {
    width: 28px;
    height: 28px;
    background: #f7c812;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: #111;
    flex-shrink: 0;
}

.svc-card-title {
    font-size: 12.5px;
    font-weight: 700;
    flex: 1;
}

.svc-card-hint {
    font-size: 10px;
    color: rgba(255,255,255,0.45);
    font-weight: 500;
    white-space: nowrap;
}

.svc-options-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    padding: 10px;
}

.svc-option-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 10px;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    font-size: 11.5px;
    font-weight: 500;
    font-family: var(--font);
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: left;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
}

.svc-option-btn i {
    color: var(--accent-dark);
    font-size: 11px;
    flex-shrink: 0;
}

.svc-option-btn span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.svc-option-btn:hover {
    border-color: var(--accent);
    background: rgba(247,200,18,0.1);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.07);
}

[data-theme="dark"] .svc-option-btn { background: var(--bg-hover); }
[data-theme="dark"] .svc-option-btn:hover { background: rgba(247,200,18,0.1); }

/* ============================================================
   WEBSITE PLANNING WIZARD (.wz-*)
   ============================================================ */

.wz-card {
    border: 1.5px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    margin-top: 10px;
    background: #fff;
}

[data-theme="dark"] .wz-card { background: var(--bg-card); border-color: var(--border); }

.wz-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 14px 12px;
    border-bottom: 1px solid #f0f0f0;
}

[data-theme="dark"] .wz-header { border-color: var(--border); }

.wz-question {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.4;
    flex: 1;
}

.wz-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.wz-step-info {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
    margin-right: 4px;
    white-space: nowrap;
}

.wz-nav-btn, .wz-close-btn {
    width: 24px;
    height: 24px;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    color: #666;
    cursor: pointer;
    transition: all 0.15s;
}

.wz-nav-btn:hover:not(:disabled), .wz-close-btn:hover { background: #f5f5f5; color: #111; }
.wz-nav-btn:disabled { opacity: 0.3; cursor: not-allowed; }

[data-theme="dark"] .wz-nav-btn,
[data-theme="dark"] .wz-close-btn { background: var(--bg-card); border-color: var(--border); color: var(--text-muted); }

.wz-options { display: flex; flex-direction: column; }

.wz-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    cursor: pointer;
    border-bottom: 1px solid #f3f4f6;
    transition: background 0.12s;
}

.wz-option:last-child { border-bottom: none; }
.wz-option:hover { background: #f9fafb; }
.wz-option:hover .wz-arrow { opacity: 1; }
.wz-option-selected { background: rgba(247,200,18,0.1) !important; }

[data-theme="dark"] .wz-option:hover { background: var(--bg-hover); }
[data-theme="dark"] .wz-option { border-color: var(--border-light); }

.wz-num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #f0f0f0;
    color: #555;
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

[data-theme="dark"] .wz-num { background: var(--bg-hover); color: var(--text-secondary); }

.wz-label { font-size: 13.5px; color: var(--text-primary); flex: 1; }

.wz-arrow {
    font-size: 10px;
    color: var(--text-muted);
    opacity: 0;
    transition: opacity 0.15s;
}

.wz-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 14px;
    border-top: 1px solid #f3f4f6;
    background: #fafafa;
}

[data-theme="dark"] .wz-footer { background: var(--bg-secondary); border-color: var(--border); }

.wz-other {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: #bbb;
}

.wz-other i { font-size: 11px; }

.wz-skip-btn {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    background: #fff;
    border: 1px solid var(--border);
    padding: 4px 12px;
    border-radius: 6px;
    cursor: pointer;
    font-family: var(--font);
    transition: all 0.15s;
}

.wz-skip-btn:hover { border-color: #999; color: var(--text-primary); }

[data-theme="dark"] .wz-skip-btn { background: var(--bg-card); }

.wz-done {
    padding: 14px 16px;
    font-size: 13px;
    color: #16a34a;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
}

.wz-done i { font-size: 16px; }

/* ============================================================
   OFFER NOTIFICATION BANNER
   ============================================================ */

.offer-banner {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px;
    padding: 8px 14px;
    background: #111;
    color: #fff;
    font-size: 13px;
    position: relative;
    flex-shrink: 0;
    border-bottom: 2px solid #f7c812;
    animation: offerSlideDown 0.4s ease;
    overflow: hidden;
}

.offer-banner.hidden { display: none; }

/* ── Off-Topic Redirect Chips ──────────────────────────────── */
.oft-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0;
}
.oft-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #111;
    color: #f7c812;
    border: 1.5px solid rgba(247,200,18,0.3);
    border-radius: 50px;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.18s, color 0.18s, border-color 0.18s;
    user-select: none;
}
.oft-chip:hover { background: #f7c812; color: #111; border-color: #f7c812; }
.oft-chip i { font-size: 11px; }
[data-theme="dark"] .oft-chip { background: #1a1a1a; border-color: rgba(247,200,18,0.25); }
[data-theme="dark"] .oft-chip:hover { background: #f7c812; color: #111; }

.offer-banner.banner-appear {
    animation: offerSlideDown 0.45s cubic-bezier(0.22,1,0.36,1);
}

@keyframes offerSlideDown {
    from { transform: translateY(-100%); opacity: 0; }
    to   { transform: translateY(0);     opacity: 1; }
}

/* Animated background shimmer */
.offer-banner::before {
    content: '';
    position: absolute;
    top: 0; left: -60%;
    width: 40%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(247,200,18,0.08), transparent);
    animation: offerShimmer 3s infinite;
    pointer-events: none;
}

@keyframes offerShimmer {
    0%   { left: -60%; }
    100% { left: 120%; }
}

/* Live pulse dot */
.offer-pulse {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #f7c812;
    flex-shrink: 0;
    animation: offerPulse 1.5s infinite;
}

@keyframes offerPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.5; transform: scale(1.4); }
}

.offer-badge {
    background: #f7c812;
    color: #111;
    font-size: 10px;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 4px;
    letter-spacing: 0.5px;
    flex-shrink: 0;
    white-space: nowrap;
}

.offer-actions {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 1;
    justify-content: flex-start;
    flex-wrap: nowrap;
    min-width: 0;
}

.offer-cta {
    background: #f7c812;
    color: #111;
    border: none;
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 4px;
}

.offer-cta:hover { background: #ffd700; transform: scale(1.03); }

.offer-cta--secondary {
    background: transparent;
    color: #f7c812;
    border: 1.5px solid #f7c812;
}

.offer-cta--secondary:hover { background: #f7c81222; transform: scale(1.03); }

.offer-close {
    background: none;
    border: none;
    color: #6b7280;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 4px;
    font-size: 13px;
    flex-shrink: 0;
    transition: color 0.15s;
    line-height: 1;
}

.offer-close:hover { color: #fff; }

/* Dark mode */
[data-theme="dark"] .offer-banner { background: #0d0d0d; border-bottom-color: #f7c812; }

/* Mobile: keep everything on one row, shrink text */
@media (max-width: 480px) {
    .offer-banner { gap: 7px; padding: 7px 10px; }
    .offer-badge { display: none; }
    .offer-actions { gap: 5px; }
    .offer-cta { padding: 4px 8px; font-size: 10.5px; }
    .offer-pulse { display: none; }
}

/* ============================================================
   BOOKING CALENDAR MODAL
   ============================================================ */

.bk-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(4px);
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.bk-overlay.visible { display: flex; }

.bk-modal {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 520px;
    max-height: 92vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 24px 60px rgba(0,0,0,0.3);
    animation: bkSlideUp 0.3s ease;
}

@keyframes bkSlideUp {
    from { transform: translateY(30px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}

/* Header */
.bk-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    background: #111;
    flex-shrink: 0;
}

.bk-header-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.bk-header-icon {
    width: 38px; height: 38px;
    background: #f7c812;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 16px; color: #111;
    flex-shrink: 0;
}

.bk-header-title { font-size: 15px; font-weight: 700; color: #fff; }
.bk-header-sub   { font-size: 11.5px; color: #9ca3af; margin-top: 2px; }

.bk-close-btn {
    background: rgba(255,255,255,0.08);
    border: none;
    color: #9ca3af;
    width: 32px; height: 32px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.15s;
    flex-shrink: 0;
}

.bk-close-btn:hover { background: rgba(255,255,255,0.15); color: #fff; }

/* Step bar */
.bk-steps-bar {
    display: flex;
    align-items: center;
    padding: 14px 24px;
    background: #f9fafb;
    border-bottom: 1px solid #f0f0f0;
    flex-shrink: 0;
}

.bk-step-item {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
}

.bk-step-num {
    width: 26px; height: 26px;
    border-radius: 50%;
    background: #e5e7eb;
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.2s;
}

.bk-step-label { font-size: 12px; font-weight: 600; color: #9ca3af; transition: color 0.2s; }

.bk-step-item.active .bk-step-num   { background: #111; color: #f7c812; }
.bk-step-item.active .bk-step-label { color: #111; }
.bk-step-item.done  .bk-step-num    { background: #f7c812; color: #111; }
.bk-step-item.done  .bk-step-label  { color: #6b7280; }

.bk-step-line {
    flex: 1;
    height: 2px;
    background: #e5e7eb;
    margin: 0 8px;
    border-radius: 2px;
}

/* Body */
.bk-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
}

.bk-body.hidden { display: none; }

/* Calendar */
.cal-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.cal-month-label { font-size: 15px; font-weight: 700; color: #111; }

.cal-nav-btn {
    width: 34px; height: 34px;
    border: 1.5px solid #e5e7eb;
    background: #fff;
    border-radius: 8px;
    cursor: pointer;
    font-size: 12px;
    color: #374151;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.15s;
}

.cal-nav-btn:hover { background: #111; color: #f7c812; border-color: #111; }

.cal-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    margin-bottom: 6px;
}

.cal-weekdays span {
    font-size: 11px;
    font-weight: 700;
    color: #9ca3af;
    padding: 4px 0;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}

.cal-day {
    aspect-ratio: 1;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 500;
    transition: all 0.15s;
    cursor: default;
}

.cal-empty    { background: transparent; }
.cal-disabled { color: #d1d5db; background: transparent; }

.cal-available {
    color: #111;
    background: #f9fafb;
    cursor: pointer;
    border: 1.5px solid transparent;
}

.cal-available:hover { background: #111; color: #f7c812; border-color: #111; }

.cal-selected {
    background: #f7c812 !important;
    color: #111 !important;
    font-weight: 800;
    border-color: #f7c812 !important;
    box-shadow: 0 2px 8px rgba(247,200,18,0.4);
}

.cal-note {
    margin-top: 12px;
    font-size: 11px;
    color: #9ca3af;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

/* Time slots */
.bk-selected-date {
    font-size: 14px;
    font-weight: 700;
    color: #111;
    margin-bottom: 14px;
    padding: 10px 14px;
    background: #f9fafb;
    border-radius: 10px;
    border-left: 3px solid #f7c812;
}

.bk-time-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 16px;
}

.time-slot {
    padding: 10px 6px;
    border: 1.5px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    transition: all 0.15s;
    text-align: center;
}

.time-slot:hover    { border-color: #111; background: #111; color: #f7c812; }
.time-slot.selected { background: #f7c812; color: #111; border-color: #f7c812; box-shadow: 0 2px 8px rgba(247,200,18,0.4); }

/* Form */
.bk-confirm-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #111;
    color: #f7c812;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 16px;
}

.bk-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 10px;
}

.bk-input {
    width: 100%;
    padding: 10px 13px;
    border: 1.5px solid #e5e7eb;
    border-radius: 9px;
    font-size: 13px;
    color: #111;
    background: #fafafa;
    outline: none;
    transition: border-color 0.15s;
    box-sizing: border-box;
    font-family: inherit;
}

.bk-input:focus { border-color: #111; background: #fff; }

.bk-select { cursor: pointer; }

.bk-textarea {
    width: 100%;
    resize: none;
    margin-bottom: 14px;
    display: block;
}

.bk-submit-btn {
    width: 100%;
    padding: 13px;
    background: #111;
    color: #f7c812;
    border: none;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.15s;
    margin-bottom: 12px;
}

.bk-submit-btn:hover { background: #222; }
.bk-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; }

.bk-back-btn {
    background: none;
    border: none;
    color: #6b7280;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    transition: color 0.15s;
}

.bk-back-btn:hover { color: #111; }

/* Success state */
.bk-success {
    padding: 32px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.bk-success-icon { font-size: 48px; color: #22c55e; }
.bk-success-title { font-size: 20px; font-weight: 800; color: #111; }
.bk-success-sub   { font-size: 14px; color: #374151; background: #f9fafb; padding: 8px 16px; border-radius: 8px; }
.bk-success-msg   { font-size: 13px; color: #6b7280; max-width: 320px; line-height: 1.5; }
.bk-done-btn      { margin-top: 8px; padding: 10px 28px; background: #f7c812; color: #111; border: none; border-radius: 9px; font-size: 14px; font-weight: 700; cursor: pointer; }

/* Dark mode */
[data-theme="dark"] .bk-modal       { background: #1a1a1a; }
[data-theme="dark"] .bk-steps-bar   { background: #111; border-color: #2a2a2a; }
[data-theme="dark"] .bk-step-num    { background: #2a2a2a; color: #9ca3af; }
[data-theme="dark"] .bk-step-line   { background: #2a2a2a; }
[data-theme="dark"] .cal-month-label { color: #f3f4f6; }
[data-theme="dark"] .cal-nav-btn    { background: #1e1e1e; border-color: #2a2a2a; color: #d1d5db; }
[data-theme="dark"] .cal-available  { background: #1e1e1e; color: #e5e7eb; }
[data-theme="dark"] .cal-available:hover { background: #f7c812; color: #111; }
[data-theme="dark"] .bk-selected-date { background: #1e1e1e; color: #f3f4f6; }
[data-theme="dark"] .time-slot      { background: #1e1e1e; border-color: #2a2a2a; color: #e5e7eb; }
[data-theme="dark"] .bk-input       { background: #1e1e1e; border-color: #2a2a2a; color: #f3f4f6; }
[data-theme="dark"] .bk-body        { background: #1a1a1a; }
[data-theme="dark"] .bk-success     { background: #1a1a1a; }
[data-theme="dark"] .bk-success-title { color: #f3f4f6; }
[data-theme="dark"] .bk-success-sub  { background: #111; color: #e5e7eb; }

/* Mobile */
@media (max-width: 480px) {
    .bk-form-row  { grid-template-columns: 1fr; }
    .bk-time-grid { grid-template-columns: repeat(2, 1fr); }
    .bk-header-sub { display: none; }
}
