/* ==========================================================================
   CBMC Advisor V7 — chat widget + homepage banner
   Extends V4 look; adds banner + richer markdown formatting for LLM answers.
   ========================================================================== */

/* ---------- HOMEPAGE BANNER ---------- */
.cbmc-v7-banner {
	padding:80px 0;
	background:linear-gradient(180deg, #0B2E5B 0%, #0f3970 100%);
	color:#FAF7F1;
	position:relative;
	overflow:hidden;
}
.cbmc-v7-banner::before {
	content:"";
	position:absolute; top:0; left:0; right:0; height:1px;
	background:linear-gradient(90deg, transparent, #4FB0C6, transparent);
}
.cbmc-v7-banner-inner {
	display:grid;
	grid-template-columns:1.4fr 1fr;
	gap:64px;
	align-items:center;
}
.cbmc-v7-banner-copy h2 {
	font-family:'Fraunces',Georgia,serif;
	font-size:clamp(32px,4vw,52px);
	font-weight:600;
	letter-spacing:-0.025em;
	line-height:1.05;
	color:#FAF7F1;
	margin:16px 0 16px;
}
.cbmc-v7-banner-copy h2 em {
	font-style:italic;
	color:#4FB0C6;
	font-weight:500;
}
.cbmc-v7-banner-sub {
	font-family:'Inter',sans-serif;
	font-size:17px;
	line-height:1.55;
	color:rgba(250,247,241,0.82);
	max-width:620px;
	margin-bottom:32px;
}
.cbmc-v7-banner-cta {
	display:flex;
	align-items:center;
	gap:20px;
	flex-wrap:wrap;
}
.cbmc-v7-open {
	background:#4FB0C6 !important;
	color:#FFFFFF !important;
	border:none !important;
	padding:14px 28px !important;
	font-size:14px !important;
	font-weight:600 !important;
	letter-spacing:0.03em !important;
	cursor:pointer;
	transition:transform .15s, background .15s;
	font-family:'Inter',sans-serif !important;
	border-radius:2px;
}
.cbmc-v7-open:hover {
	background:#3d97ab !important;
	transform:translateY(-1px);
}
.cbmc-v7-banner-note {
	font-size:12px;
	color:rgba(250,247,241,0.55);
	letter-spacing:0.02em;
}

/* Chip preview */
.cbmc-v7-banner-preview {
	position:relative;
}
.cbmc-v7-chip-list {
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
.cbmc-v7-chip {
	display:inline-block;
	padding:10px 14px;
	background:rgba(79,176,198,0.10);
	border:1px solid rgba(79,176,198,0.35);
	color:#FAF7F1;
	font-family:'Inter',sans-serif;
	font-size:12.5px;
	font-weight:500;
	letter-spacing:0.01em;
	border-radius:2px;
	line-height:1.3;
}

@media (max-width:900px) {
	.cbmc-v7-banner-inner { grid-template-columns:1fr; gap:40px; }
	.cbmc-v7-banner { padding:64px 0; }
	.cbmc-v7-banner-cta { flex-direction:column; align-items:flex-start; gap:14px; }
}

/* ---------- FLOATING BUTTON (positioned to avoid V4 conflict) ---------- */
.cbmc-adv-fab.cbmc-v7 {
	position:fixed;
	bottom:24px;
	right:24px;
	z-index:9998;
	display:inline-flex;
	align-items:center;
	gap:10px;
	padding:14px 22px;
	background:#0B2E5B;
	color:#FAF7F1;
	border:none;
	border-radius:2px;
	font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
	font-size:14px;
	font-weight:600;
	letter-spacing:0.02em;
	cursor:pointer;
	box-shadow:0 6px 24px rgba(11,46,91,0.28);
	transition:transform .2s, box-shadow .2s, background .2s;
}
.cbmc-adv-fab.cbmc-v7:hover { transform:translateY(-2px); box-shadow:0 8px 32px rgba(11,46,91,0.36); background:#0f3970; }
.cbmc-adv-fab.cbmc-v7 .cbmc-adv-fab-icon { display:inline-flex; width:20px; height:20px; align-items:center; justify-content:center; }
.cbmc-adv-fab.cbmc-v7 .cbmc-adv-fab-icon svg { width:20px; height:20px; fill:#4FB0C6; }
.cbmc-adv-fab.cbmc-v7 .cbmc-adv-fab-dot {
	position:absolute; top:-4px; right:-4px;
	width:12px; height:12px; border-radius:50%;
	background:#4FB0C6; border:2px solid #FAF7F1;
	animation:cbmc-adv-pulse 2s infinite;
}
@keyframes cbmc-adv-pulse {
	0% { box-shadow:0 0 0 0 rgba(79,176,198,0.7); }
	70% { box-shadow:0 0 0 10px rgba(79,176,198,0); }
	100% { box-shadow:0 0 0 0 rgba(79,176,198,0); }
}

/* ---------- CHAT PANEL — wider for citations & tables ---------- */
.cbmc-adv-panel-v7 {
	position:fixed;
	bottom:24px;
	right:24px;
	z-index:9999;
	width:460px;
	max-width:calc(100vw - 32px);
	height:720px;
	max-height:calc(100vh - 48px);
	background:#FAF7F1;
	border:1px solid #E5E1D8;
	border-radius:2px;
	box-shadow:0 20px 60px rgba(11,46,91,0.28);
	display:flex;
	flex-direction:column;
	font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
	transform:translateY(20px);
	opacity:0;
	pointer-events:none;
	transition:opacity .25s, transform .25s;
}
.cbmc-adv-panel-v7.open { transform:translateY(0); opacity:1; pointer-events:auto; }

.cbmc-adv-head-v7 {
	background:#0B2E5B;
	color:#FAF7F1;
	padding:22px 24px 20px;
	position:relative;
	flex-shrink:0;
}
.cbmc-adv-head-v7::after {
	content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
	background:linear-gradient(90deg, transparent, #4FB0C6, transparent);
}
.cbmc-adv-sub-v7 {
	font-size:11px;
	letter-spacing:0.15em;
	text-transform:uppercase;
	color:#4FB0C6;
	font-weight:600;
	margin-bottom:4px;
}
.cbmc-adv-title-v7 {
	font-family:'Fraunces',Georgia,serif;
	font-size:22px;
	font-weight:600;
	letter-spacing:-0.02em;
	line-height:1.15;
	margin:0;
	color:#FAF7F1;
}
.cbmc-adv-title-v7 em {
	font-style:italic;
	color:#4FB0C6;
	font-weight:500;
}
.cbmc-adv-close-v7 {
	position:absolute;
	top:16px;
	right:16px;
	background:none;
	border:none;
	color:#FAF7F1;
	opacity:0.6;
	cursor:pointer;
	padding:6px;
	line-height:0;
	transition:opacity .2s;
}
.cbmc-adv-close-v7:hover { opacity:1; }
.cbmc-adv-close-v7 svg { width:16px; height:16px; }

/* Messages area */
.cbmc-adv-msgs-v7 {
	flex:1;
	overflow-y:auto;
	padding:22px 22px 8px;
	display:flex;
	flex-direction:column;
	gap:14px;
	scroll-behavior:smooth;
}
.cbmc-adv-msgs-v7::-webkit-scrollbar { width:6px; }
.cbmc-adv-msgs-v7::-webkit-scrollbar-thumb { background:#E5E1D8; border-radius:2px; }

.cbmc-adv-msg-v7 {
	max-width:92%;
	padding:12px 15px;
	border-radius:2px;
	font-size:14px;
	line-height:1.55;
	word-wrap:break-word;
	animation:cbmc-adv-fade 0.25s ease-out;
}
@keyframes cbmc-adv-fade { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }

.cbmc-adv-msg-v7.bot {
	align-self:flex-start;
	background:#FFFFFF;
	border:1px solid #E5E1D8;
	color:#1A1A1A;
}
.cbmc-adv-msg-v7.user {
	align-self:flex-end;
	background:#0B2E5B;
	color:#FAF7F1;
	border:1px solid #0B2E5B;
	max-width:80%;
}
.cbmc-adv-msg-meta-v7 {
	font-size:10px;
	text-transform:uppercase;
	letter-spacing:0.12em;
	color:#6B7280;
	font-weight:600;
	margin-bottom:6px;
}
.cbmc-adv-msg-v7.user .cbmc-adv-msg-meta-v7 { color:rgba(250,247,241,0.6); }

/* Markdown-rendered bot answers */
.cbmc-adv-body-v7 h2 {
	font-family:'Fraunces',Georgia,serif;
	font-size:18px;
	font-weight:600;
	color:#0B2E5B;
	margin:14px 0 6px;
	letter-spacing:-0.015em;
}
.cbmc-adv-body-v7 h3 {
	font-family:'Fraunces',Georgia,serif;
	font-size:15px;
	font-weight:600;
	color:#0B2E5B;
	margin:10px 0 4px;
}
.cbmc-adv-body-v7 p { margin:0 0 8px; }
.cbmc-adv-body-v7 ul, .cbmc-adv-body-v7 ol { margin:6px 0 10px; padding-left:20px; }
.cbmc-adv-body-v7 li { margin-bottom:4px; }
.cbmc-adv-body-v7 strong { color:#0B2E5B; font-weight:600; }
.cbmc-adv-body-v7 a { color:#4FB0C6; text-decoration:underline; text-underline-offset:2px; }
.cbmc-adv-body-v7 code {
	background:rgba(11,46,91,0.06);
	padding:1px 5px;
	border-radius:2px;
	font-family:'SF Mono',Menlo,Consolas,monospace;
	font-size:12.5px;
	color:#0B2E5B;
}
.cbmc-adv-body-v7 blockquote {
	background:#FFF7E6;
	border-left:3px solid #B8894A;
	margin:8px 0 12px;
	padding:10px 12px;
	font-size:13px;
	color:#5A4419;
	border-radius:2px;
}
.cbmc-adv-body-v7 table {
	width:100%;
	border-collapse:collapse;
	margin:10px 0;
	font-size:12.5px;
}
.cbmc-adv-body-v7 th {
	background:#0B2E5B;
	color:#FAF7F1;
	padding:8px 10px;
	text-align:left;
	font-weight:600;
	font-family:'Inter',sans-serif;
	font-size:11px;
	text-transform:uppercase;
	letter-spacing:0.08em;
}
.cbmc-adv-body-v7 td {
	padding:8px 10px;
	border-bottom:1px solid #E5E1D8;
	vertical-align:top;
}

/* Warning capsule callout */
.cbmc-adv-warn {
	background:linear-gradient(90deg, rgba(184,137,74,0.10), rgba(184,137,74,0.05));
	border:1px solid rgba(184,137,74,0.3);
	padding:10px 12px;
	margin-bottom:10px;
	font-size:12px;
	line-height:1.5;
	color:#5A4419;
	border-radius:2px;
}
.cbmc-adv-warn strong { color:#5A4419; }

/* Typing indicator */
.cbmc-adv-typing-v7 {
	align-self:flex-start;
	background:#FFFFFF;
	border:1px solid #E5E1D8;
	padding:14px 16px;
	display:inline-flex;
	gap:5px;
}
.cbmc-adv-typing-v7 span {
	width:6px; height:6px;
	background:#4FB0C6;
	border-radius:50%;
	animation:cbmc-adv-blink 1.4s infinite ease-in-out;
}
.cbmc-adv-typing-v7 span:nth-child(2) { animation-delay:0.16s; }
.cbmc-adv-typing-v7 span:nth-child(3) { animation-delay:0.32s; }
@keyframes cbmc-adv-blink {
	0%, 80%, 100% { opacity:0.3; transform:scale(0.9); }
	40% { opacity:1; transform:scale(1); }
}

/* Suggested chips */
.cbmc-adv-suggested-v7 {
	padding:0 22px 12px;
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	flex-shrink:0;
}
.cbmc-adv-chip-v7 {
	background:transparent;
	border:1px solid #E5E1D8;
	color:#0B2E5B;
	font-family:inherit;
	font-size:12px;
	padding:6px 12px;
	border-radius:14px;
	cursor:pointer;
	transition:all .15s;
}
.cbmc-adv-chip-v7:hover { border-color:#4FB0C6; background:rgba(79,176,198,0.06); }

/* CTA row */
.cbmc-adv-cta-row-v7 { display:flex; gap:8px; margin-top:12px; }
.cbmc-adv-cta-btn-v7 {
	flex:1;
	padding:9px 12px;
	border:1px solid #4FB0C6;
	background:#4FB0C6;
	color:#FFFFFF;
	text-decoration:none;
	text-align:center;
	font-size:12px;
	font-weight:600;
	letter-spacing:0.02em;
	border-radius:2px;
	transition:all .15s;
	font-family:inherit;
}
.cbmc-adv-cta-btn-v7.ghost { background:transparent; color:#0B2E5B; border-color:#0B2E5B; }
.cbmc-adv-cta-btn-v7:hover { transform:translateY(-1px); }

/* Input area */
.cbmc-adv-input-wrap-v7 {
	padding:12px 16px 16px;
	border-top:1px solid #E5E1D8;
	background:#FFFFFF;
	flex-shrink:0;
}
.cbmc-adv-input-row-v7 { display:flex; gap:8px; align-items:flex-end; }
.cbmc-adv-input-v7 {
	flex:1;
	border:1px solid #E5E1D8;
	background:#FAF7F1;
	padding:10px 14px;
	font-family:inherit;
	font-size:14px;
	color:#1A1A1A;
	border-radius:2px;
	resize:none;
	min-height:40px;
	max-height:120px;
	line-height:1.4;
}
.cbmc-adv-input-v7:focus { outline:none; border-color:#4FB0C6; }
.cbmc-adv-send-v7 {
	background:#0B2E5B;
	color:#FFFFFF;
	border:none;
	border-radius:2px;
	padding:0;
	width:40px; height:40px;
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	transition:background .2s;
}
.cbmc-adv-send-v7:hover { background:#0f3970; }
.cbmc-adv-send-v7:disabled { background:#6B7280; cursor:not-allowed; }
.cbmc-adv-send-v7 svg { width:18px; height:18px; fill:#FAF7F1; }

.cbmc-adv-footer-v7 {
	padding:8px 16px 4px;
	font-size:10px;
	letter-spacing:0.08em;
	color:#6B7280;
	text-transform:uppercase;
	text-align:center;
	background:#FFFFFF;
}

/* Mobile */
@media (max-width:640px) {
	.cbmc-adv-panel-v7 {
		bottom:0; right:0; left:0;
		width:100%; max-width:100%;
		height:100vh; height:100dvh;
		max-height:100vh;
		border-radius:0;
	}
	.cbmc-adv-fab.cbmc-v7 { bottom:16px; right:16px; padding:12px 18px; font-size:13px; }
}

body.cbmc-adv-open { overflow:hidden; }
@media (min-width:641px) { body.cbmc-adv-open { overflow:auto; } }

/* RTL (Arabic via V3) */
body.cbmc-rtl .cbmc-adv-fab.cbmc-v7 { right:auto; left:24px; }
body.cbmc-rtl .cbmc-adv-panel-v7 { right:auto; left:24px; }
body.cbmc-rtl .cbmc-adv-msg-v7.bot { align-self:flex-end; }
body.cbmc-rtl .cbmc-adv-msg-v7.user { align-self:flex-start; }
body.cbmc-rtl .cbmc-adv-close-v7 { right:auto; left:16px; }
