/* rozi459.css — Everbrookly Residential Eldercare */

/* 1. SITE HEADER (DESK & PHONE INTEGRATION) */
.site-header {
	position:relative;
	width:100%;
	background-color:var(--ground);
	border-bottom:var(--ledger-rule-soft);
	z-index:100;
}

.site-header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:var(--space-md);
	min-height:var(--header-height);
	padding-block:var(--space-xs);
}

.brand {
	display:inline-flex;
	align-items:center;
	text-decoration:none;
	max-width:40vw;
	flex-shrink:0;
	transition:opacity var(--dur-fast) ease;
}

.brand:hover { opacity:0.88; }

.brand:active { opacity:0.72; }

.brand:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:4px;
}

.brand img {
	height:3.2rem;
	width:auto;
	display:block;
}

.header-nav { display:none; }

.header-action { display:none; }

@media (min-width: 980px) {
	.header-nav {
		display:flex;
		align-items:center;
		gap:var(--space-md);
	}

	.nav-list {
		display:flex;
		align-items:center;
		list-style:none;
		gap:clamp(1rem, 0.6rem + 1vw, 2rem);
		margin:0;
		padding:0;
	}

	.nav-link {
		font-family:var(--somo-25e);
		font-size:var(--text-base);
		color:var(--ink-soft);
		text-decoration:none;
		letter-spacing:var(--tracking-wide);
		padding:var(--space-xs) 0;
		position:relative;
		transition:color var(--dur-fast) ease;
	}

	.nav-link::after {
		content:"";
		position:absolute;
		inset:auto 0 0 0;
		height:1px;
		background-color:var(--accent);
		transform:scaleX(0);
		transform-origin:left center;
		transition:transform var(--dur-med) var(--ease-out-quint);
	}

	.nav-link:hover { color:var(--ink); }

	.nav-link:hover::after { transform:scaleX(1); }

	.nav-link:active { color:var(--accent); }

	.nav-link[aria-current='page'] {
		color:var(--accent);
		font-weight:500;
	}

	.nav-link[aria-current='page']::after { transform:scaleX(1); }

	.header-action {
		display:inline-flex;
		align-items:center;
	}
}

/* 2. BUTTONS & ACTIONS */
.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-xs);
	min-height:44px;
	padding:0.65rem 1.4rem;
	font-family:var(--somo-25e);
	font-size:var(--text-base);
	font-weight:500;
	line-height:var(--leading-none);
	letter-spacing:var(--tracking-wide);
	text-decoration:none;
	border-radius:0;
	border:1px solid transparent;
	cursor:pointer;
	white-space:normal;
	text-align:center;
	transition:background-color var(--dur-fast) ease,
							border-color var(--dur-fast) ease,
							color var(--dur-fast) ease,
							box-shadow var(--dur-fast) ease,
							transform var(--dur-fast) ease;
}

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

.btn-primary:hover {
	background-color:#d1b476;
	border-color:#d1b476;
	color:var(--accent-ink);
	box-shadow:0 4px 14px rgba(194, 162, 98, 0.25);
	transform:translateY(-1px);
}

.btn-primary:active {
	background-color:#b59453;
	border-color:#b59453;
	color:var(--accent-ink);
	box-shadow:0 1px 4px rgba(194, 162, 98, 0.2);
	transform:translateY(0);
}

.btn-primary:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:3px;

}

.btn-secondary {
	background-color:transparent;
	border-color:var(--line);
	color:var(--ink);
}

.btn-secondary:hover {
	background-color:var(--surface);
	border-color:var(--ink-soft);
	color:var(--ink);
	transform:translateY(-1px);
}

.btn-secondary:active {
	background-color:var(--surface-2);
	border-color:var(--accent);
	color:var(--ink);
	transform:translateY(0);
}

.btn-secondary:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:3px;
}

.btn-ghost {
	background-color:transparent;
	border-color:transparent;
	color:var(--ink-soft);
	padding-inline:var(--space-xs);
}

.btn-ghost:hover {
	color:var(--accent);
	text-decoration-color:var(--accent);
}

.btn-ghost:active { color:var(--ink); }

.btn-ghost:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}

/* 3. PHONE DOCK (FIXED AT BOTTOM) */
.dock {
	position:fixed;
	inset:auto 0 0 0;
	z-index:900;
	height:var(--dock-height);
	background-color:var(--surface);
	border-top:var(--ledger-rule);
	box-shadow:0 -4px 18px rgba(0, 0, 0, 0.45);
	padding-bottom:env(safe-area-inset-bottom, 0px);
}

.dock-inner {
	display:flex;
	align-items:stretch;
	justify-content:space-around;
	height:100%;
	max-width:600px;
	margin-inline:auto;
}

.dock-item {
	flex:1 1 0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:2px;
	min-height:44px;
	padding:4px 2px;
	text-decoration:none;
	color:var(--ink-soft);
	background:none;
	border:none;
	font-family:var(--somo-25e);
	transition:color var(--dur-fast) ease, background-color var(--dur-fast) ease;
	appearance:none;
	-webkit-appearance:none;
}

.dock-item .icon {
	width:20px;
	height:20px;
}

.dock-label {
	font-family:var(--somo-762);
	font-size:0.6875rem;
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	line-height:1;
}

.dock-item:hover {
	color:var(--ink);
	background-color:rgba(255, 255, 255, 0.04);
}

.dock-item:active {
	color:var(--accent);
	background-color:rgba(0, 0, 0, 0.2);
}

.dock-item:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:-2px;
}

.dock-item[aria-current='page'] {
	color:var(--accent);
	font-weight:600;
}

@media (min-width: 980px) {
	.dock { display:none !important; }
}

.mobile-drawer-backdrop {

	position:fixed;
	inset:0;
	background-color:rgba(17, 17, 17, 0.7);
	z-index:950;
	opacity:0;
	pointer-events:none;
	transition:opacity var(--dur-med) var(--ease-sharp);
	backdrop-filter:blur(4px);
}

.mobile-drawer-backdrop.is-open {
	opacity:1;
	pointer-events:auto;
}

.mobile-drawer {
	position:fixed;
	inset:auto 0 var(--dock-height) 0;
	max-height:calc(85vh - var(--dock-height));
	background-color:var(--surface);
	border-top:2px solid var(--accent);
	border-bottom:var(--ledger-rule);
	box-shadow:0 -12px 32px rgba(0, 0, 0, 0.65);
	z-index:960;
	overflow-y:auto;
	transform:translateY(105%);
	transition:transform var(--dur-med) var(--ease-out-quint);
	padding:var(--space-lg) var(--space-md);
}

.mobile-drawer.is-open { transform:translateY(0); }

.mobile-drawer-header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	border-bottom:var(--ledger-rule-soft);
	padding-bottom:var(--space-sm);
	margin-bottom:var(--space-md);
}

.mobile-drawer-title {
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	letter-spacing:var(--tracking-widest);
	text-transform:uppercase;
	color:var(--ink-soft);
}

.mobile-drawer-close {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	min-width:44px;
	padding:var(--space-2xs);
	color:var(--ink-soft);

	border:1px solid var(--line);
	background-color:transparent;
	transition:color var(--dur-fast) ease, border-color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}

.mobile-drawer-close:hover {
	color:var(--accent);
	border-color:var(--accent);
	background-color:var(--surface-2);
}

.mobile-drawer-close:active {
	color:var(--ink);
	background-color:var(--ground);
}

.mobile-drawer-close:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:2px;
}

.mobile-nav-list {
	list-style:none;
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	margin:0 0 var(--space-lg) 0;
	padding:0;
}

.mobile-nav-link {
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height:44px;
	padding:var(--space-xs) var(--space-sm);
	font-family:var(--somo-f75);
	font-size:var(--text-lg);
	color:var(--ink);
	text-decoration:none;
	border-bottom:var(--ledger-rule-soft);
	transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease;
}

.mobile-nav-link:hover {
	background-color:var(--surface-2);
	color:var(--accent);
}

.mobile-nav-link:active {
	background-color:var(--ground);
	color:var(--ink);
}

.mobile-nav-link:focus-visible {
	outline:2px solid var(--accent);
	outline-offset:-2px;
}

.mobile-nav-link[aria-current='page'] {
	color:var(--accent);
	font-weight:600;
	border-left:3px solid var(--accent);
}

.mobile-drawer-contact {
	border-top:var(--ledger-rule);
	padding-top:var(--space-md);
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
}

/* 5. INSET ESSAY BLOCKS (THE ASSIGNED ESSAY COMPOSITION) */
.essay-inset {
	background-color:var(--surface);
	border-left:3px solid var(--accent);
	border-top:var(--ledger-rule-soft);
	border-bottom:var(--ledger-rule-soft);
	border-right:var(--ledger-rule-soft);
	padding:clamp(1.25rem, 1rem + 1.2vw, 2rem);
	margin-block:var(--space-xl);
	max-width:var(--inset-measure);
}

.essay-inset-title {
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	letter-spacing:var(--tracking-widest);
	text-transform:uppercase;
	color:var(--accent);
	margin-bottom:var(--space-xs);
}

.essay-inset-figures {
	display:flex;
	flex-wrap:wrap;
	gap:var(--space-lg);
	margin-top:var(--space-md);
	padding-top:var(--space-sm);
	border-top:var(--ledger-rule-soft);
}

.figure-block {
	display:flex;
	flex-direction:column;
	gap:2px;
}

.figure-num {
	font-family:var(--somo-762);
	font-size:var(--text-xl);
	font-weight:500;
	color:var(--ink);
}

.figure-caption {
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:var(--tracking-wide);
}

.essay-photo-plate {
	margin-block:var(--space-2xl);
	width:100%;
}

.essay-photo-plate img {
	width:100%;
	height:auto;
	border:var(--ledger-rule);
	object-fit:cover;
	max-height:640px;
}

.essay-photo-caption {
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:var(--space-md);
	margin-top:var(--space-xs);
	padding-top:var(--space-xs);
	border-top:var(--ledger-rule-soft);
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	color:var(--ink-soft);
}

.essay-photo-caption span {
	text-transform:uppercase;
	letter-spacing:var(--tracking-wider);
}

.suite-spec-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-lg);
	margin-block:var(--space-xl);
}

@media (min-width: 768px) {
	.suite-spec-grid { grid-template-columns:repeat(2, 1fr); }
}

.suite-card {
	background-color:var(--surface);
	border:var(--ledger-rule);
	display:flex;
	flex-direction:column;
	height:100%;
	position:relative;
	transition:border-color var(--dur-fast) ease;
}

.suite-card:hover { border-color:var(--accent); }

.suite-card-media {
	position:relative;
	aspect-ratio:16 / 10;
	border-bottom:var(--ledger-rule-soft);
	overflow:hidden;
	background-color:var(--ground);
}

.suite-card-media img {
	width:100%;
	height:100%;
	object-fit:cover;
}

.suite-card-content {
	padding:var(--space-md);
	display:flex;
	flex-direction:column;
	flex:1 1 auto;
}

.suite-card-header {
	border-bottom:var(--ledger-rule-soft);
	padding-bottom:var(--space-sm);
	margin-bottom:var(--space-sm);
}

.suite-card-title {
	font-family:var(--somo-f75);
	font-size:var(--text-lg);
	margin-bottom:var(--space-2xs);
}

.suite-card-pricing {
	font-family:var(--somo-762);
	font-size:var(--text-md);
	color:var(--accent);
	font-variant-numeric:tabular-nums;
	margin-top:var(--space-2xs);
}

.suite-card-detail {
	font-size:var(--text-sm);
	color:var(--ink-soft);
	line-height:var(--leading-normal);
	margin-bottom:var(--space-md);
}

.suite-card-features {
	list-style:none;
	margin:0 0 var(--space-md) 0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:var(--space-2xs);
}

.suite-card-features li {
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	color:var(--ink);
	display:flex;
	align-items:center;
	gap:var(--space-xs);
}

.suite-card-features .icon {
	width:14px;
	height:14px;
	color:var(--accent);
}

.suite-card-action {
	margin-top:auto;
	padding-top:var(--space-sm);
	border-top:var(--ledger-rule-soft);
}

/* 8. FORMS & INPUT CONTROLS */
.inquiry-form {
	background-color:var(--surface);
	border:var(--ledger-rule);
	padding:clamp(1.5rem, 1.2rem + 1.5vw, 3rem);
	max-width:720px;
}

.form-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-md);
}

@media (min-width: 640px) {
	.form-grid-2col { grid-template-columns:1fr 1fr; }
}

.form-group {
	display:flex;
	flex-direction:column;
	gap:var(--space-2xs);
}

.form-label {
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	color:var(--ink-soft);
}

.form-label .optional-indicator {
	font-family:var(--somo-25e);
	font-style:italic;
	text-transform:none;
	color:var(--ink-soft);
	opacity:0.8;
}

.form-control {
	min-height:44px;
	height:44px;
	padding:0.55rem 0.85rem;
	background-color:var(--surface-2);
	border:1px solid var(--line);
	color:var(--ink);
	font-family:var(--somo-25e);
	font-size:var(--text-base);
	border-radius:0;
	transition:border-color var(--dur-fast) ease, background-color var(--dur-fast) ease;
	width:100%;
}

.form-control:hover {
	border-color:var(--ink-soft);
	background-color:#79383c;
}

.form-control:focus {
	outline:none;
	border-color:var(--accent);
	background-color:#552226;
	box-shadow:0 0 0 1px var(--accent);
}

.form-control.is-invalid {
	border-color:#e06060;
	background-color:rgba(224, 96, 96, 0.08);
}

.form-error {
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	color:#ff9b9b;
	margin-top:2px;
	display:none;
}

.form-error.is-visible { display:block; }

textarea.form-control {
	min-height:120px;
	height:auto;
	resize:vertical;
	line-height:var(--leading-normal);
}

.form-consent-group {
	display:flex;
	align-items:flex-start;
	gap:var(--space-xs);
	margin-block:var(--space-sm);
}

.form-consent-checkbox {
	min-width:20px;
	min-height:20px;
	margin-top:3px;
	accent-color:var(--accent);
	cursor:pointer;
}

.form-consent-label {
	font-size:var(--text-sm);
	color:var(--ink-soft);
	line-height:var(--leading-normal);
}

.form-consent-label a {
	color:var(--ink);
	text-decoration:underline;
}

.form-status {
	padding:var(--space-sm) var(--space-md);
	margin-block:var(--space-md);
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	border:1px solid transparent;
	display:none;
}

.form-status.is-visible { display:block; }

.form-status.status-success {
	background-color:rgba(194, 162, 98, 0.15);
	border-color:var(--accent);
	color:var(--ink);
}

.form-status.status-error {
	background-color:rgba(224, 96, 96, 0.15);
	border-color:#e06060;
	color:#ffc2c2;
}

/* 9. SITE FOOTER WITH RESTATED CONTACT BLOCK & LEGAL ROW */
.site-footer {
	background-color:var(--surface);
	border-top:var(--ledger-rule);
	margin-top:var(--space-3xl);
	padding-block:var(--space-2xl) var(--space-xl);
	position:relative;
}

.footer-top {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-xl);
	padding-bottom:var(--space-xl);
	border-bottom:var(--ledger-rule-soft);
}

@media (min-width: 860px) {
	.footer-top { grid-template-columns:1.5fr 1fr 1fr; }
}

.footer-brand-col {
	display:flex;
	flex-direction:column;
	gap:var(--space-sm);
}

.footer-brand-col .brand img { height:3.5rem; }

.footer-summary {
	font-size:var(--text-sm);
	color:var(--ink-soft);
	max-width:44ch;
}

.footer-heading {
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	letter-spacing:var(--tracking-widest);
	text-transform:uppercase;
	color:var(--accent);
	margin-bottom:var(--space-sm);
}

.footer-nav-list {
	list-style:none;
	padding:0;
	margin:0;
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
}

.footer-nav-link {
	font-size:var(--text-sm);
	color:var(--ink-soft);
	text-decoration:none;
	transition:color var(--dur-fast) ease;
	display:inline-flex;
	align-items:center;
	min-height:44px;
}

.footer-nav-link:hover { color:var(--accent); }

.footer-contact-list {
	list-style:none;
	padding:0;
	margin:0;
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
}

.footer-contact-item {
	display:flex;
	align-items:flex-start;
	gap:var(--space-xs);
	font-size:var(--text-sm);
	color:var(--ink-soft);
}

.footer-contact-item .icon {
	width:16px;
	height:16px;
	color:var(--accent);
	margin-top:3px;
}

.footer-contact-item a {
	color:var(--ink-soft);
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	min-height:44px;
}

.footer-contact-item a:hover {
	color:var(--accent);
	text-decoration:underline;
}

.footer-legal-row {
	margin-top:var(--space-xl);
	padding-top:var(--space-md);
	display:flex;
	flex-direction:column;
	gap:var(--space-md);
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	color:var(--ink-soft);
}

@media (min-width: 860px) {
	.footer-legal-row {
		flex-direction:row;
		align-items:center;
		justify-content:space-between;
	}
}

.footer-legal-links {
	display:flex;
	flex-wrap:wrap;
	gap:clamp(0.75rem, 0.5rem + 1vw, 1.5rem);
	list-style:none;
	padding:0;
	margin:0;
}

.footer-legal-link {
	color:var(--ink-soft);
	text-decoration:underline;
	text-underline-offset:3px;
	display:inline-flex;
	align-items:center;
	min-height:44px;
}

.footer-legal-link:hover { color:var(--accent); }

.footer-licence-badge {
	color:var(--accent);
	letter-spacing:var(--tracking-wider);
}

.cookie-banner {
	position:fixed;
	inset:auto 0 0 0;
	z-index:920;
	background-color:var(--surface);
	border-top:2px solid var(--accent);
	box-shadow:0 -8px 24px rgba(0, 0, 0, 0.65);
	padding:var(--space-sm) var(--space-md);
	display:none;
}

.cookie-banner.is-visible { display:block; }

@media (max-width: 979px) {
	.cookie-banner { bottom:var(--dock-height); }
}

.cookie-banner-inner {
	display:flex;
	flex-direction:column;
	gap:var(--space-sm);
	max-width:var(--container-max);
	margin-inline:auto;
}

@media (min-width: 768px) {
	.cookie-banner-inner {
		flex-direction:row;
		align-items:center;
		justify-content:space-between;
	}
}

.cookie-banner-text {
	font-size:var(--text-sm);
	color:var(--ink);
	line-height:var(--leading-normal);
	max-width:70ch;
	margin:0;
}

.cookie-banner-text a {
	color:var(--accent);
	text-decoration:underline;
}

.cookie-banner-actions {
	display:flex;
	align-items:center;
	gap:var(--space-xs);
	flex-shrink:0;
}

.btn-cookie {
	min-height:40px;
	padding:0.5rem 1rem;
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	letter-spacing:var(--tracking-wide);
	text-transform:uppercase;
}

/* 11. CHAT LAUNCHER & PANEL */
html body .chat-launcher {
	position:fixed;
	bottom:calc(var(--dock-height) + 12rem);
	right:1rem;
	z-index:910;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:48px;
	min-width:48px;
	padding:0.75rem;
	border-radius:0;
	background-color:var(--accent);
	color:var(--accent-ink);
	border:1px solid var(--accent);
	box-shadow:var(--shadow-elevated);
	cursor:pointer;
	transition:transform var(--dur-fast) ease, background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}

@media (min-width: 980px) {
	.chat-launcher {
		bottom:2rem;
		right:2rem;
	}
}

.chat-launcher:hover {
	background-color:#d1b476;
	transform:translateY(-2px);
	box-shadow:0 14px 36px rgba(0, 0, 0, 0.7);
}

.chat-launcher:active {
	background-color:#b59453;
	transform:translateY(0);
}

.chat-launcher:focus-visible {
	outline:2px solid var(--ink);
	outline-offset:3px;
}

.chat-launcher .icon {
	width:22px;
	height:22px;
}

.chat-launcher-badge {
	position:absolute;
	top:-4px;
	right:-4px;
	background-color:#d94343;
	color:#ffffff;
	font-family:var(--somo-762);
	font-size:0.6875rem;
	font-weight:600;
	min-width:18px;
	height:18px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding-inline:3px;
	border-radius:9px;
	display:none;
}

.chat-launcher-badge.is-visible { display:inline-flex; }

.chat-panel {
	position:fixed;
	bottom:calc(var(--dock-height) + 4.5rem);
	right:1rem;
	width:calc(100vw - 2rem);
	max-width:380px;
	height:520px;
	max-height:calc(100vh - var(--dock-height) - 6rem);
	background-color:var(--surface);
	border:var(--ledger-rule);
	box-shadow:var(--shadow-elevated);
	z-index:915;
	display:flex;
	flex-direction:column;
	overflow:hidden;
	transform:translateY(20px);
	opacity:0;
	pointer-events:none;
	transition:opacity var(--dur-med) var(--ease-out-quint), transform var(--dur-med) var(--ease-out-quint);
}

@media (min-width: 980px) {
	.chat-panel {
		bottom:5.5rem;
		right:2rem;
		max-height:560px;
	}
}

.chat-panel.is-open {
	opacity:1;
	pointer-events:auto;
	transform:translateY(0);
}

.chat-panel-header {
	background-color:var(--surface-2);
	border-bottom:var(--ledger-rule);
	padding:var(--space-xs) var(--space-sm);
	display:flex;
	align-items:center;
	justify-content:space-between;
}

.chat-panel-title {
	font-family:var(--somo-762);
	font-size:var(--text-xs);
	letter-spacing:var(--tracking-wider);
	text-transform:uppercase;
	color:var(--ink);
	display:flex;
	align-items:center;
	gap:var(--space-2xs);
}

.chat-panel-title .status-dot {
	width:8px;
	height:8px;
	background-color:#55b364;
	border-radius:50%;
	display:inline-block;
}

.chat-panel-close {
	min-height:36px;
	min-width:36px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	color:var(--ink-soft);
	border:1px solid transparent;
	transition:color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}

.chat-panel-close:hover {
	color:var(--accent);
	border-color:var(--line);
}

.chat-panel-close:active { color:var(--ink); }

.chat-panel-close:focus-visible { outline:2px solid var(--accent); }

.chat-transcript {
	flex:1 1 auto;
	overflow-y:auto;
	padding:var(--space-sm);
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	background-color:var(--ground);
}

.chat-msg {
	max-width:85%;
	padding:0.5rem 0.75rem;
	font-size:var(--text-sm);
	line-height:var(--leading-normal);
	word-break:break-word;
}

.chat-msg-agent {
	align-self:flex-start;
	background-color:var(--surface);
	border:1px solid var(--line);
	color:var(--ink);
}

.chat-msg-user {
	align-self:flex-end;
	background-color:var(--accent);
	color:var(--accent-ink);
}

.chat-input-bar {
	padding:var(--space-xs) var(--space-sm);
	background-color:var(--surface);
	border-top:var(--ledger-rule-soft);
	display:flex;
	gap:var(--space-2xs);
}

.chat-input {
	flex:1 1 auto;
	min-height:40px;
	padding:0.5rem 0.75rem;
	background-color:var(--surface-2);
	border:1px solid var(--line);
	color:var(--ink);
	font-size:16px;
}

@media (max-width: 48rem) {
	.chat-input { font-size:16px; }
}

.chat-input:focus {
	outline:none;
	border-color:var(--accent);
}

.chat-send-btn {
	min-height:40px;
	min-width:44px;
	padding:0 0.75rem;
	background-color:var(--accent);
	color:var(--accent-ink);
	border:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
}

.chat-send-btn:hover { background-color:#d1b476; }

.chat-send-btn:active { background-color:#b59453; }
