/* DeSalvo Law Case Review Chat
   Brand: navy #1a3a5c, orange #f79106. Scoped under #dscr-root with enough
   specificity (and !important where themes fight back) to survive Breakdance. */

#dscr-root {
	--dscr-navy: #1a3a5c;
	--dscr-navy-deep: #12293f;
	--dscr-orange: #f79106;
	--dscr-orange-press: #d97c00;
	--dscr-ink: #1f2a37;
	--dscr-muted: #5b6878;
	--dscr-mist: #eef2f6;
	--dscr-line: #d6dde5;
	--dscr-white: #ffffff;
	width: 100%;
	max-width: 640px;
	margin: 24px auto 40px;
	padding: 0 16px;
	font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif;
	color: var(--dscr-ink);
	line-height: 1.5;
	box-sizing: border-box;
}
#dscr-root *, #dscr-root *::before, #dscr-root *::after { box-sizing: border-box; }

#dscr-root .dscr-card {
	background: var(--dscr-white);
	border: 1px solid var(--dscr-line);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(26, 58, 92, 0.12);
}

/* Header */
#dscr-root .dscr-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	background: var(--dscr-navy);
	color: var(--dscr-white);
}
#dscr-root .dscr-logo { width: 40px; height: 40px; border-radius: 6px; background: #fff; object-fit: contain; flex-shrink: 0; }
#dscr-root .dscr-head-text { flex: 1; min-width: 0; }
#dscr-root .dscr-title {
	margin: 0 !important; padding: 0 !important;
	font-family: 'Poppins', 'Lato', sans-serif !important;
	font-size: 16px !important; font-weight: 600 !important; line-height: 1.25 !important;
	color: var(--dscr-white) !important;
}
#dscr-root .dscr-sub { margin: 2px 0 0 !important; padding: 0 !important; font-size: 12.5px !important; line-height: 1.35 !important; color: #c9d6e4 !important; }
#dscr-root .dscr-call {
	flex-shrink: 0;
	font-family: 'Poppins', 'Lato', sans-serif;
	font-weight: 700; font-size: 14px;
	color: var(--dscr-white) !important;
	background: var(--dscr-orange);
	padding: 8px 12px; border-radius: 8px;
	text-decoration: none !important; white-space: nowrap;
}
#dscr-root .dscr-call:hover { background: var(--dscr-orange-press); }

/* Message area */
#dscr-root .dscr-messages {
	display: flex; flex-direction: column; gap: 14px;
	min-height: 220px; max-height: min(62vh, 560px);
	overflow-y: auto;
	padding: 22px 18px 18px;
	background: var(--dscr-mist);
	scroll-behavior: smooth;
}

/* The opening question — the one bold moment on the page */
#dscr-root .dscr-intro { margin: 0 0 4px; padding: 6px 4px 0; }
#dscr-root .dscr-question {
	margin: 0 0 8px !important; padding: 0 !important;
	font-family: 'Poppins', 'Lato', sans-serif !important;
	font-size: clamp(26px, 5vw, 34px) !important; font-weight: 700 !important;
	line-height: 1.12 !important; letter-spacing: -0.01em !important;
	color: var(--dscr-navy) !important; text-align: left !important;
	text-transform: none !important;
}
#dscr-root .dscr-hint { margin: 0 !important; font-size: 15px !important; color: var(--dscr-muted) !important; }
#dscr-root .dscr-intro-sent { margin-top: 0; }
#dscr-root .dscr-intro-sent .dscr-question { font-size: 18px !important; }
#dscr-root .dscr-intro-sent .dscr-hint { display: none; }

/* Bubbles */
#dscr-root .dscr-row { display: flex; flex-direction: column; max-width: 86%; }
#dscr-root .dscr-user { align-self: flex-end; align-items: flex-end; }
#dscr-root .dscr-assistant { align-self: flex-start; align-items: flex-start; }
#dscr-root .dscr-who { font-size: 12px; color: var(--dscr-muted); margin: 0 0 4px 4px; }
#dscr-root .dscr-bubble {
	padding: 11px 14px; border-radius: 16px;
	font-size: 15.5px; line-height: 1.55;
	word-wrap: break-word; overflow-wrap: anywhere;
}
#dscr-root .dscr-bubble p { margin: 0 0 8px !important; padding: 0 !important; }
#dscr-root .dscr-bubble p:last-child { margin-bottom: 0 !important; }
#dscr-root .dscr-assistant .dscr-bubble { background: var(--dscr-white); color: var(--dscr-ink); border: 1px solid var(--dscr-line); border-top-left-radius: 4px; }
#dscr-root .dscr-user .dscr-bubble { background: var(--dscr-navy); color: var(--dscr-white); border-top-right-radius: 4px; }
#dscr-root .dscr-bubble a { color: inherit; font-weight: 700; }
#dscr-root .dscr-note { align-self: center; max-width: 90%; margin: 0 !important; font-size: 13.5px !important; color: var(--dscr-muted) !important; text-align: center !important; }

/* Typing indicator */
#dscr-root .dscr-typing .dscr-bubble { display: flex; gap: 5px; padding: 14px 16px; }
#dscr-root .dscr-typing span { width: 7px; height: 7px; border-radius: 50%; background: #9aa7b6; animation: dscr-dot 1.1s ease-in-out infinite; }
#dscr-root .dscr-typing span:nth-child(2) { animation-delay: .15s; }
#dscr-root .dscr-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes dscr-dot { 0%, 80%, 100% { opacity: .35; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-4px); } }

/* Composer */
#dscr-root .dscr-compose {
	display: flex; align-items: flex-end; gap: 10px;
	padding: 12px 14px; margin: 0 !important;
	border-top: 1px solid var(--dscr-line); background: var(--dscr-white);
}
#dscr-root .dscr-input {
	flex: 1; display: block; width: 100%;
	min-height: 46px; max-height: 160px; resize: none;
	padding: 12px 14px !important; margin: 0 !important;
	font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif !important; font-size: 16px !important; line-height: 1.45 !important;
	color: var(--dscr-ink) !important; background: var(--dscr-white) !important;
	border: 1.5px solid var(--dscr-line) !important; border-radius: 12px !important;
	box-shadow: none !important; outline: none;
	-webkit-appearance: none; appearance: none;
}
#dscr-root .dscr-input::placeholder { color: #8a96a5; opacity: 1; }
#dscr-root .dscr-input:focus { border-color: var(--dscr-navy) !important; box-shadow: 0 0 0 3px rgba(26, 58, 92, .15) !important; }
#dscr-root .dscr-input:disabled { background: var(--dscr-mist) !important; }
#dscr-root .dscr-send {
	flex-shrink: 0; height: 46px; padding: 0 20px !important; margin: 0 !important;
	border: 0 !important; border-radius: 12px !important;
	background: var(--dscr-orange) !important; color: var(--dscr-white) !important;
	font-family: 'Poppins', 'Lato', sans-serif !important; font-size: 15px !important; font-weight: 700 !important;
	line-height: 46px !important; text-transform: none !important; letter-spacing: 0 !important;
	cursor: pointer; box-shadow: none !important;
}
#dscr-root .dscr-send:hover { background: var(--dscr-orange-press) !important; }
#dscr-root .dscr-send:disabled { background: #c6ced8 !important; cursor: not-allowed; }
#dscr-root .dscr-send:focus-visible, #dscr-root .dscr-call:focus-visible { outline: 3px solid var(--dscr-navy); outline-offset: 2px; }

#dscr-root .dscr-fine {
	margin: 0 !important; padding: 10px 16px 14px !important;
	font-size: 12.5px !important; line-height: 1.45 !important;
	color: var(--dscr-muted) !important; background: var(--dscr-white) !important; text-align: left !important;
}
#dscr-root .dscr-fine a { color: var(--dscr-navy) !important; font-weight: 700; }

#dscr-root .dscr-sr {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

@media (max-width: 560px) {
	#dscr-root { padding: 0 8px; margin-top: 12px; }
	#dscr-root .dscr-sub { display: none; }
	#dscr-root .dscr-call { font-size: 13px; padding: 7px 10px; }
	#dscr-root .dscr-messages { padding: 18px 12px 14px; max-height: 58vh; }
	#dscr-root .dscr-row { max-width: 92%; }
	#dscr-root .dscr-send { padding: 0 16px !important; }
}

@media (prefers-reduced-motion: reduce) {
	#dscr-root .dscr-messages { scroll-behavior: auto; }
	#dscr-root .dscr-typing span { animation: none; opacity: .7; }
}

/* ── v1.0.1: readability and alignment, forced over theme/Breakdance styles ── */
#dscr-root, #dscr-root .dscr-messages, #dscr-root .dscr-row, #dscr-root .dscr-bubble,
#dscr-root .dscr-bubble p, #dscr-root .dscr-intro, #dscr-root .dscr-hint, #dscr-root .dscr-who {
	text-align: left !important;
}
#dscr-root .dscr-bubble p {
	color: inherit !important;
	font-size: inherit !important;
	line-height: inherit !important;
	font-weight: 400 !important;
}
#dscr-root .dscr-assistant .dscr-bubble { color: #111827 !important; }
#dscr-root .dscr-user .dscr-bubble { color: #ffffff !important; }
#dscr-root .dscr-who { color: #4b5768 !important; font-weight: 600; }

@media (max-width: 560px) {
	#dscr-root .dscr-bubble { font-size: 17px !important; line-height: 1.5 !important; }
	#dscr-root .dscr-hint { font-size: 16px !important; }
	#dscr-root .dscr-who { font-size: 13px !important; }
}

/* ── v1.0.4: Start over ── */
#dscr-root .dscr-tools { display: flex; justify-content: flex-end; padding: 0 16px; background: var(--dscr-white); }
#dscr-root .dscr-tools[hidden] { display: none !important; }
#dscr-root .dscr-restart {
	background: none !important; border: 0 !important; box-shadow: none !important;
	padding: 6px 0 0 !important; margin: 0 !important;
	font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif !important; font-size: 13.5px !important; font-weight: 700 !important;
	color: var(--dscr-navy) !important; text-decoration: underline !important; text-transform: none !important; letter-spacing: 0 !important;
	cursor: pointer; line-height: 1.4 !important;
}
#dscr-root .dscr-restart:hover { color: var(--dscr-orange-press) !important; }
#dscr-root .dscr-restart:focus-visible { outline: 3px solid var(--dscr-navy); outline-offset: 2px; }
