*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:root {
	/* Primitives */
	--white: 255, 255, 255;
	--black: 0, 0, 0;
	--greyscale-025: 245, 245, 245;
	--greyscale-050: 235, 235, 235;
	--greyscale-100: 222, 222, 222;
	--greyscale-150: 206, 206, 206;
	--greyscale-200: 188, 188, 188;
	--greyscale-275: 168, 168, 168;
	--greyscale-325: 148, 148, 148;
	--greyscale-475: 103, 103, 103;
	--greyscale-575: 80, 80, 80;
	--greyscale-650: 57, 57, 57;
	--greyscale-750: 34, 34, 34;
	--greyscale-850: 12, 12, 12;
	--primary-025: 242, 245, 251;
	--primary-050: 227, 236, 249;
	--primary-100: 208, 223, 247;
	--primary-275: 123, 170, 246;
	--primary-325: 85, 146, 244;
	--primary-400: 40, 118, 242;
	--primary-475: 24, 96, 208;
	--primary-575: 14, 66, 147;
	--green-050: 195, 252, 210;
	--green-325: 0, 177, 92;
	--green-475: 0, 124, 63;
	--green-750: 0, 42, 19;
	--red-100: 251, 211, 207;
	--red-325: 255, 69, 69;
	--red-475: 195, 0, 28;
	--yellow-050: 249, 233, 207;
	--yellow-200: 234, 175, 59;
	--yellow-750: 47, 30, 4;

	/* Semantic - backgrounds */
	--background-main: var(--greyscale-025);
	--background-upper: var(--white);
	--background-actbtn: var(--primary-575);
	--background-actbtn-hover: var(--primary-475);
	--background-btn: var(--greyscale-025);
	--background-btn-active: var(--greyscale-050);
	--background-error: var(--red-100);
	--background-success: var(--green-050);
	--background-warning: var(--yellow-050);
	--background-info: var(--primary-050);
	--background-input: var(--white);
	--background-input-disabled: var(--greyscale-025);
	--background-modal: var(--white);
	--background-labelbadge: var(--primary-050);
	--background-badge: var(--greyscale-050);

	/* Semantic - borders */
	--border-soft: var(--greyscale-100);
	--border-hard: var(--greyscale-200);
	--border-input: var(--greyscale-150);
	--border-btn-hover: var(--primary-325);
	--border-selected: var(--primary-475);
	--border-error-soft: var(--red-100);
	--border-error-hard: var(--red-475);
	--border-success-soft: var(--green-050);
	--border-success-hard: var(--green-325);
	--border-warning-soft: var(--yellow-050);
	--border-warning-hard: var(--yellow-200);
	--border-info: var(--primary-100);
	--focus-input: var(--primary-275);

	/* Semantic - text */
	--textcolor-main: var(--greyscale-750);
	--textcolor-secondary: var(--greyscale-475);
	--textcolor-heading: var(--greyscale-850);
	--textcolor-subheading: var(--greyscale-650);
	--textcolor-btn: var(--greyscale-750);
	--textcolor-btn-hover: var(--greyscale-850);
	--textcolor-actbtn: var(--white);
	--textcolor-error: var(--red-475);
	--textcolor-success: var(--green-475);
	--textcolor-warning: var(--yellow-750);
	--textcolor-link: var(--primary-475);

	/* Semantic - icons */
	--icon: var(--greyscale-575);
	--icon-hover: var(--greyscale-750);
	--icon-success: var(--green-475);
	--icon-error: var(--red-475);
	--icon-warning: var(--yellow-750);
	--button-icon: var(--greyscale-575);
	--button-icon-hover: var(--greyscale-850);
	--button-icon-actbtn: var(--white);

	/* Spacing */
	--spacing-extra-small: 4px;
	--spacing-small: 8px;
	--spacing-medium: 12px;
	--spacing-medium-large: 16px;
	--spacing-large: 32px;
	--spacing-extra-large: 64px;

	/* Typography */
	--size-small: 12px;
	--size-base: 14px;
	--size-icon-base: 16px;
	--size-subtitle: 18px;
	--size-heading: 24px;
	--fontweight-normal: 400;
	--fontweight-semibold: 600;
	--fontweight-bold: 800;

	/* Radius */
	--border-radius-small: 5px;
	--border-radius-large: 10px;

	/* Motion */
	--animation-timing-fast: 0.25s;
	--animation-timing-base: 0.3s;

	/* Other */
	--minimum-tap-target-size: 44px;
	--main-box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.08);
}

html {
	font-size: 16px;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	background: rgb(var(--background-main));
	color: rgb(var(--textcolor-main));
	font-size: var(--size-base);
	font-weight: var(--fontweight-normal);
	line-height: 1.6;
	min-height: 100vh;
}

/* ─── Beta tag ───────────────────────────────────────── */
.beta-tag {
	display: inline-block;
	background: rgb(var(--primary-050));
	color: rgb(var(--primary-575));
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 2px 7px;
	border-radius: 4px;
	border: 1px solid rgb(var(--primary-100));
	vertical-align: middle;
	line-height: 1.6;
	margin-left: 6px;
}

/* ─── AI disclaimer footer ───────────────────────────── */
.ai-disclaimer {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 7px 16px;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(6px);
	border-top: 1px solid rgb(var(--greyscale-100));
	font-family: Poppins, sans-serif;
	font-size: 11px;
	color: rgb(var(--greyscale-475));
	cursor: pointer;
	user-select: none;
	transition: background 0.15s;
}

.ai-disclaimer:hover {
	background: rgb(var(--greyscale-025));
}

.ai-disclaimer i {
	font-size: 11px;
	flex-shrink: 0;
	color: rgb(var(--greyscale-325));
}

.ai-disclaimer-sep {
	color: rgb(var(--greyscale-275));
}

.ai-disclaimer-readmore {
	color: rgb(var(--primary-475));
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ai-disclaimer[aria-expanded="true"] .ai-disclaimer-sep,
.ai-disclaimer[aria-expanded="true"] .ai-disclaimer-readmore {
	display: none;
}

.ai-disclaimer-chevron {
	position: absolute;
	right: 16px;
	transition: transform 0.25s ease;
}

.ai-disclaimer[aria-expanded="true"] .ai-disclaimer-chevron {
	transform: rotate(180deg);
}

/* ─── Disclaimer panel ───────────────────────────────── */
.disclaimer-panel {
	position: fixed;
	bottom: 33px;
	left: 0;
	right: 0;
	z-index: 49;
	background: rgb(var(--background-upper));
	border-top: 1px solid rgb(var(--greyscale-100));
	box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.08);
	transform: translateY(100%);
	transition: transform 0.25s ease;
}

.disclaimer-panel.open {
	transform: translateY(0);
}

.disclaimer-panel-inner {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
	padding: 20px 52px 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.disclaimer-panel-inner p {
	font-family: Poppins, sans-serif;
	font-size: 12px;
	color: rgb(var(--greyscale-575));
	line-height: 1.6;
}

.disclaimer-heading {
	font-family: Poppins, sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: rgb(var(--greyscale-750));
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 6px;
}

.disclaimer-heading:first-child {
	margin-top: 0;
}

.disclaimer-heading i {
	font-size: 11px;
	color: rgb(var(--greyscale-325));
}

.disclaimer-close-btn {
	position: absolute;
	top: 12px;
	right: 16px;
	background: none;
	border: 1px solid rgb(var(--greyscale-100));
	border-radius: 6px;
	color: rgb(var(--greyscale-475));
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 13px;
	transition: background 0.15s, color 0.15s;
}

.disclaimer-close-btn:hover {
	background: rgb(var(--greyscale-050));
	color: rgb(var(--greyscale-750));
}

.disclaimer-warning {
	background: rgb(var(--yellow-050));
	border: 1px solid rgb(var(--yellow-200));
	border-radius: 6px;
	padding: 8px 12px;
	color: rgb(var(--yellow-750)) !important;
	display: flex;
	align-items: flex-start;
	gap: 7px;
}

.disclaimer-warning i {
	color: rgb(var(--yellow-200));
	flex-shrink: 0;
	margin-top: 2px;
}

/* ─── Header ─────────────────────────────────────────── */
.app-header {
	background: rgb(var(--background-upper));
	border-bottom: 1px solid rgb(var(--border-soft));
	padding: 0 24px;
	position: sticky;
	top: 0;
	z-index: var(--zindex-pageheader, 40);
	box-shadow: var(--main-box-shadow);
}

.app-header-inner {
	max-width: 960px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: var(--spacing-medium);
	height: 64px;
}

.app-logo-img {
	height: 28px;
	width: auto;
	flex-shrink: 0;
	display: block;
}

.app-header-divider {
	width: 1px;
	height: 28px;
	background: rgb(var(--border-soft));
	flex-shrink: 0;
}

.app-header-text h1 {
	font-size: var(--size-subtitle);
	font-weight: var(--fontweight-bold);
	color: rgb(var(--textcolor-heading));
	line-height: 1.2;
}

.app-header-text p {
	font-size: var(--size-small);
	color: rgb(var(--textcolor-secondary));
	line-height: 1.2;
}

/* ─── Main layout ─────────────────────────────────────── */
.app-main {
	max-width: 960px;
	margin: 0 auto;
	padding: var(--spacing-large) 24px 60px;
}

/* ─── Cards ───────────────────────────────────────────── */
.card {
	background: rgb(var(--background-upper));
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-large);
	box-shadow: var(--main-box-shadow);
	padding: var(--spacing-large);
}

.card + .card {
	margin-top: 24px;
}

/* ─── Upload section ─────────────────────────────────── */
.upload-headline {
	font-family: Poppins, sans-serif;
	font-size: 24px;
	font-weight: 600;
	color: rgb(1, 11, 34);
	margin-top: 16px;
	margin-bottom: 6px;
}

.upload-sub {
	font-size: var(--size-base);
	color: rgb(var(--textcolor-secondary));
	margin-bottom: 28px;
}

#drop-zone {
	border: 2px dashed rgb(var(--border-input));
	border-radius: var(--border-radius-large);
	padding: 48px 24px;
	text-align: center;
	cursor: pointer;
	transition: border-color var(--animation-timing-fast), background var(--animation-timing-fast);
	background: rgb(var(--background-main));
	position: relative;
}

#drop-zone:hover,
#drop-zone.drag-over {
	border-color: rgb(var(--border-selected));
	background: rgb(var(--background-info));
}

#drop-zone.has-file {
	border-color: rgb(var(--border-success-hard));
	background: rgb(var(--background-success));
}

.drop-icon {
	font-size: 40px;
	line-height: 1;
	display: block;
	text-align: center;
	margin: 0 auto var(--spacing-medium-large);
	color: rgb(var(--textcolor-secondary));
}

#drop-zone.has-file .drop-icon {
	color: rgb(var(--icon-success));
}

.drop-primary {
	font-size: var(--size-base);
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-subheading));
	margin-bottom: var(--spacing-extra-small);
}

.drop-secondary {
	font-size: var(--size-small);
	color: rgb(var(--textcolor-secondary));
}

#file-name-display {
	margin-top: var(--spacing-medium);
	font-size: var(--size-base);
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-success));
	display: none;
}

#drop-zone.has-file #file-name-display {
	display: block;
}

#file-input {
	position: absolute;
	inset: 0;
	opacity: 0;
	cursor: pointer;
	width: 100%;
	height: 100%;
}

/* ─── Form fields ─────────────────────────────────────── */
.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-medium-large);
	margin-top: 20px;
}

.form-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.form-group label {
	font-size: var(--size-base);
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-subheading));
}

.form-group select {
	height: var(--minimum-tap-target-size);
	padding: 0 var(--spacing-medium-large);
	padding-right: 36px;
	border: 1px solid rgb(var(--border-input));
	border-radius: var(--border-radius-small);
	font-size: var(--size-base);
	color: rgb(var(--textcolor-main));
	background: rgb(var(--background-input));
	cursor: pointer;
	transition: border-color var(--animation-timing-fast), box-shadow var(--animation-timing-fast);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}

.form-group select:focus {
	outline: 2px solid rgb(var(--focus-input));
	outline-offset: 0;
}

/* ─── Buttons ─────────────────────────────────────────── */
.btn {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-small);
	padding: 6px 12px;
	background: #ffffff;
	color: rgb(1, 11, 34);
	border: 1.25px solid rgb(222, 222, 222);
	border-radius: 5px;
	font-family: Poppins, sans-serif;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--animation-timing-fast), border-color var(--animation-timing-fast), color var(--animation-timing-fast);
	text-decoration: none;
	white-space: nowrap;
	text-align: center;
	box-sizing: border-box;
}

.btn:hover {
	background: rgb(var(--background-btn-active));
	border-color: rgb(200, 200, 200);
	color: rgb(1, 11, 34);
}

.btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}

.btn.btn__commit,
.btn.btn__action {
	background: rgb(var(--background-actbtn));
	color: rgb(var(--textcolor-actbtn));
	border-color: transparent;
}

.btn.btn__commit:hover,
.btn.btn__action:hover {
	background: rgb(var(--background-actbtn-hover));
}

.btn.btn__commit i,
.btn.btn__action i {
	color: rgb(var(--button-icon-actbtn));
}

/* Submit button — extends .btn.btn__commit */
.btn-analyze {
	width: 100%;
	justify-content: center;
	margin-top: var(--spacing-medium-large);
	font-size: var(--size-subtitle);
}

.btn-analyze i {
	font-size: 18px;
	flex-shrink: 0;
}

/* ─── Loading section ─────────────────────────────────── */
#loading-section {
	text-align: left;
}

/* Two-column layout */
.loading-body {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	gap: 32px;
}

.loading-preview-col {
	flex: 0 0 160px;
	width: 160px;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

.loading-info-col {
	flex: 1;
	min-width: 0;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* Reset margins on all direct children so gap alone controls spacing */
.loading-info-col > * {
	margin: 0;
}

.loading-info-col .loading-steps-list {
	max-width: none;
	margin: 0;
}

/* Document preview container */
.loading-preview-inner {
	position: relative;
	width: 160px;
	height: 220px;
	background: rgb(var(--background-upper));
	border: 1px solid rgb(var(--border-soft));
	border-radius: 6px;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.10);
	overflow: hidden;
	flex-shrink: 0;
}

/* PDF multi-page scrolling preview */
#doc-preview-viewport {
	width: 160px;
}

#pdf-scroll-strip {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.pdf-page-canvas {
	display: block;
	width: 160px;
	height: auto;
	flex-shrink: 0;
	border-radius: 2px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* @keyframes pdf-page-scroll is injected by JS with a concrete pixel value */

.doc-preview-placeholder {
	padding: 16px 14px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	height: 100%;
}

.doc-placeholder-line {
	height: 7px;
	border-radius: 4px;
	background: rgb(var(--greyscale-100));
	flex-shrink: 0;
}

/* Radar / scan line */
.scan-line {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: linear-gradient(
		to right,
		transparent 0%,
		rgba(24, 96, 208, 0.7) 20%,
		rgba(85, 146, 244, 1) 50%,
		rgba(24, 96, 208, 0.7) 80%,
		transparent 100%
	);
	box-shadow: 0 0 8px rgba(40, 118, 242, 0.6), 0 0 20px rgba(40, 118, 242, 0.25);
	animation: scan-sweep 2.4s cubic-bezier(0.45, 0, 0.55, 1) infinite;
	pointer-events: none;
}

@keyframes scan-sweep {
	0%   { top: 0;                  opacity: 1; }
	48%  { top: calc(100% - 3px);   opacity: 1; }
	50%  { top: calc(100% - 3px);   opacity: 0.5; }
	52%  { top: calc(100% - 3px);   opacity: 1; }
	100% { top: 0;                  opacity: 1; }
}

/* ── Magic wand rewrite animation ─────────────────────── */
.magic-wand-wrap {
	display: none;
	position: absolute;
	inset: 0;
	pointer-events: none;
}

/* Activate rewriting mode */
.loading-preview-inner.rewriting .scan-line {
	display: none;
}

.loading-preview-inner.rewriting .magic-wand-wrap {
	display: block;
}

.magic-wand-icon {
	position: absolute;
	top: 18px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 30px;
	color: #a855f7;
	z-index: 2;
	animation: wand-wave 1.6s ease-in-out infinite;
	transform-origin: 50% 90%;
}

@keyframes wand-wave {
	0%,100% { transform: translateX(-50%) rotate(-18deg); }
	25%      { transform: translateX(-50%) rotate(10deg) translateY(-3px); }
	55%      { transform: translateX(-50%) rotate(-8deg); }
	75%      { transform: translateX(-50%) rotate(14deg) translateY(-4px); }
}

/* Sparkle particles */
.mw-spark {
	position: absolute;
	border-radius: 50%;
	opacity: 0;
	animation: spark-fall linear infinite;
}

.mw-s1 { width:6px; height:6px; top:44px; left:62px;  background:#ffd700; animation-duration:2.0s; animation-delay:0.0s; }
.mw-s2 { width:4px; height:4px; top:40px; left:95px;  background:#c084fc; animation-duration:1.7s; animation-delay:0.3s; }
.mw-s3 { width:5px; height:5px; top:48px; left:76px;  background:#f472b6; animation-duration:2.3s; animation-delay:0.6s; }
.mw-s4 { width:4px; height:4px; top:38px; left:112px; background:#67e8f9; animation-duration:1.9s; animation-delay:0.9s; }
.mw-s5 { width:6px; height:6px; top:46px; left:44px;  background:#fbbf24; animation-duration:2.1s; animation-delay:1.2s; }
.mw-s6 { width:3px; height:3px; top:42px; left:128px; background:#a78bfa; animation-duration:1.8s; animation-delay:1.5s; }
.mw-s7 { width:5px; height:5px; top:36px; left:84px;  background:#34d399; animation-duration:2.2s; animation-delay:0.45s; }
.mw-s8 { width:4px; height:4px; top:50px; left:52px;  background:#fb7185; animation-duration:1.6s; animation-delay:1.1s; }

@keyframes spark-fall {
	0%   { transform: translate(0, 0) scale(1) rotate(0deg);    opacity: 0; }
	10%  { opacity: 1; }
	80%  { opacity: 0.7; }
	100% { transform: translate(var(--dx,0px), 150px) scale(0.2) rotate(180deg); opacity: 0; }
}

.mw-s1 { --dx: -18px; }
.mw-s2 { --dx:  12px; }
.mw-s3 { --dx: -6px;  }
.mw-s4 { --dx:  22px; }
.mw-s5 { --dx: -24px; }
.mw-s6 { --dx:  8px;  }
.mw-s7 { --dx: -10px; }
.mw-s8 { --dx:  16px; }

/* Document lines shimmer when rewriting */
.loading-preview-inner.rewriting .doc-placeholder-line {
	background: linear-gradient(90deg,
		rgb(var(--greyscale-100)) 0%,
		#ddd6fe 35%,
		#fde68a 50%,
		#ddd6fe 65%,
		rgb(var(--greyscale-100)) 100%);
	background-size: 300% 100%;
	animation: line-shimmer 2.2s ease-in-out infinite;
}

.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(1)  { animation-delay: 0.00s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(2)  { animation-delay: 0.18s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(3)  { animation-delay: 0.36s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(4)  { animation-delay: 0.54s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(5)  { animation-delay: 0.72s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(6)  { animation-delay: 0.90s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(7)  { animation-delay: 1.08s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(8)  { animation-delay: 1.26s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(9)  { animation-delay: 1.44s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(10) { animation-delay: 1.62s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(11) { animation-delay: 1.80s; }
.loading-preview-inner.rewriting .doc-placeholder-line:nth-child(12) { animation-delay: 1.98s; }

@keyframes line-shimmer {
	0%   { background-position: 120% 0; }
	100% { background-position: -120% 0; }
}

/* Document stats row */
.doc-stats-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
}

.doc-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 0;
	flex: 1;
}

.doc-stat-num {
	font-size: 1.1rem;
	font-weight: var(--fontweight-bold);
	color: rgb(var(--textcolor-heading));
	font-variant-numeric: tabular-nums;
	line-height: 1;
}

.doc-stat-label {
	font-size: 10px;
	color: rgb(var(--textcolor-secondary));
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: var(--fontweight-semibold);
}

.doc-stat-sep {
	width: 1px;
	height: 24px;
	background: rgb(var(--border-soft));
	flex-shrink: 0;
}

.loading-title {
	font-family: Poppins, sans-serif;
	font-size: 24px;
	font-weight: 600;
	color: rgb(1, 11, 34);
	margin: 0;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.loading-step {
	font-size: var(--size-base);
	color: rgb(var(--textcolor-secondary));
	min-height: 1.5em;
	margin: 0;
	text-align: center;
	transition: opacity var(--animation-timing-base);
}

.loading-steps-list {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-small);
	margin: 0;
	text-align: left;
	max-width: none;
}

.loading-step-item {
	display: flex;
	align-items: center;
	gap: var(--spacing-medium);
	padding: 10px var(--spacing-medium-large);
	background: rgb(var(--background-main));
	border-radius: var(--border-radius-small);
	font-size: var(--size-base);
	color: rgb(var(--textcolor-secondary));
	transition: all var(--animation-timing-base);
}

.loading-step-item.active {
	background: rgb(var(--background-info));
	color: rgb(var(--textcolor-link));
	font-weight: var(--fontweight-semibold);
}

.loading-step-item.done {
	color: rgb(var(--textcolor-success));
}

.step-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgb(var(--border-hard));
	flex-shrink: 0;
	transition: background var(--animation-timing-base);
}

.loading-step-item.active .step-dot {
	background: rgb(var(--background-actbtn));
	animation: pulse-dot 1s ease-in-out infinite;
}

.loading-step-item.done .step-dot {
	background: rgb(var(--icon-success));
}

@keyframes pulse-dot {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.5; transform: scale(1.3); }
}

/* ─── Error section ───────────────────────────────────── */
#error-section {
	padding: 24px;
	background: rgb(var(--background-error));
	border: 1px solid rgb(var(--border-error-hard));
	border-radius: var(--border-radius-large);
	display: flex;
	align-items: flex-start;
	gap: var(--spacing-medium-large);
}

.error-icon {
	font-size: 22px;
	line-height: 1;
	color: rgb(var(--textcolor-error));
	flex-shrink: 0;
	margin-top: 2px;
}

.error-title {
	font-size: var(--size-base);
	font-weight: var(--fontweight-bold);
	color: rgb(var(--textcolor-error));
	margin-bottom: var(--spacing-extra-small);
}

#error-message {
	font-size: var(--size-base);
	color: rgb(var(--textcolor-error));
}

/* ─── Results section ─────────────────────────────────── */
.results-footer {
	margin-top: 28px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.results-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--spacing-medium-large);
	margin-bottom: 28px;
}

.results-title-block {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}

.results-document-title {
	font-family: Poppins, sans-serif;
	font-size: 24px;
	font-weight: 600;
	color: rgb(1, 11, 34);
	margin: 0;
	text-align: left;
}

.results-meta {
	font-size: 0.85rem;
	color: rgb(var(--textcolor-secondary));
	margin: 0;
	text-align: left;
}

/* ─── Score + summary row ─────────────────────────────── */
.results-overview {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--spacing-large);
	align-items: start;
	margin-bottom: 24px;
}

.score-circle-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-small);
}

.score-circle {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	background: conic-gradient(var(--score-color, rgb(var(--primary-475))) calc(var(--score, 0) * 1%), rgb(var(--border-soft)) 0);
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.score-circle::before {
	content: '';
	position: absolute;
	inset: 10px;
	background: rgb(var(--background-upper));
	border-radius: 50%;
}

.score-value {
	position: relative;
	font-size: 2rem;
	font-weight: var(--fontweight-bold);
	color: rgb(var(--textcolor-heading));
	line-height: 1;
}

.score-label {
	position: relative;
	font-size: var(--size-small);
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-secondary));
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.score-title {
	font-size: var(--size-small);
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-secondary));
	text-align: center;
}

.summary-block h2 {
	font-family: Poppins, sans-serif;
	font-size: 24px;
	font-weight: 600;
	color: rgb(1, 11, 34);
	margin-top: 16px;
	margin-bottom: var(--spacing-small);
}

#summary-text {
	font-size: var(--size-base);
	color: rgb(var(--textcolor-main));
	line-height: 1.7;
}

.tags-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-small);
	margin-top: var(--spacing-medium);
}

.tag-pill {
	display: inline-flex;
	align-items: center;
	padding: var(--spacing-extra-small) var(--spacing-small);
	background: rgb(var(--background-labelbadge));
	color: rgb(var(--textcolor-link));
	border-radius: var(--border-radius-small);
	font-size: var(--size-small);
	font-weight: var(--fontweight-semibold);
}

/* ─── Tabs ────────────────────────────────────────────── */
.tab-bar {
	display: flex;
	border-bottom: 1px solid rgb(var(--border-soft));
	padding-bottom: 0;
	margin-bottom: 24px;
	gap: 0;
	overflow: visible;
}

.tab-btn {
	display: flex;
	align-items: center;
	gap: var(--spacing-small);
	padding: var(--spacing-small) var(--spacing-medium-large);
	border: none;
	background: transparent;
	font-size: var(--size-base);
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-secondary));
	cursor: pointer;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color var(--animation-timing-fast);
	white-space: nowrap;
}

.tab-btn:hover {
	color: rgb(var(--textcolor-heading));
}

.tab-btn.active {
	color: rgb(var(--textcolor-link));
	border-bottom-color: rgb(var(--border-selected));
}

.tab-btn .tab-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px var(--spacing-extra-small);
	border-radius: var(--border-radius-small);
	font-size: var(--size-small);
	font-weight: var(--fontweight-semibold);
	background: rgb(var(--background-badge));
	color: rgb(var(--textcolor-secondary));
}

.tab-btn.active .tab-count {
	background: rgb(var(--background-info));
	color: rgb(var(--textcolor-link));
}

.tab-panel {
	display: none;
}

.tab-panel.active {
	display: block;
}

/* ─── Re-evaluate notice ──────────────────────────────── */
.reeval-notice {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--spacing-medium);
	padding: 10px var(--spacing-medium-large);
	background: rgb(var(--background-info));
	border: 1px solid rgb(var(--border-info));
	border-radius: var(--border-radius-large);
	margin-bottom: var(--spacing-medium-large);
	font-size: var(--size-base);
	flex-wrap: wrap;
}

.reeval-notice-text {
	color: rgb(var(--textcolor-link));
	display: flex;
	align-items: center;
	gap: 6px;
}

.btn-reeval {
	white-space: nowrap;
	flex-shrink: 0;
}

.reeval-error {
	color: rgb(var(--textcolor-error));
	font-size: var(--size-small);
	margin-left: var(--spacing-medium);
}

/* ─── Checklist ───────────────────────────────────────── */
.checklist-stats {
	display: flex;
	gap: var(--spacing-medium-large);
	margin-bottom: 20px;
	flex-wrap: wrap;
}

.stat-badge {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 14px 20px;
	cursor: default;
	pointer-events: none;
	user-select: none;
	border-radius: var(--border-radius-large);
	min-width: 90px;
}

.stat-badge-number {
	font-family: Poppins, sans-serif;
	font-size: 2rem;
	font-weight: var(--fontweight-bold);
	line-height: 1;
}

.stat-badge-label {
	font-size: var(--size-small);
	font-weight: var(--fontweight-medium);
	display: flex;
	align-items: center;
	gap: 5px;
}

.stat-badge.pass {
	background: rgb(var(--background-success));
	color: rgb(var(--textcolor-success));
}

.stat-badge.fail {
	background: rgb(var(--background-error));
	color: rgb(var(--textcolor-error));
}

.checklist-list {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-small);
}

.checklist-item {
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-large);
	overflow: hidden;
	transition: box-shadow var(--animation-timing-fast);
}

.checklist-item:hover {
	box-shadow: var(--main-box-shadow);
}

.checklist-list.is-reevaluating .checklist-item {
	opacity: 0.4;
	pointer-events: none;
	transition: opacity 0.2s;
}

.checklist-header {
	display: flex;
	align-items: center;
	gap: var(--spacing-medium);
	padding: var(--spacing-medium) var(--spacing-medium-large);
	cursor: pointer;
	user-select: none;
	background: rgb(var(--background-upper));
	transition: background var(--animation-timing-fast);
}

.checklist-header:hover {
	background: rgb(var(--background-main));
}

.check-icon {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-size: var(--size-small);
	font-weight: var(--fontweight-bold);
}

.check-icon.pass {
	color: rgb(var(--icon-success));
	background: rgb(var(--background-success));
}

.check-icon.fail {
	color: rgb(var(--icon-error));
	background: rgb(var(--background-error));
}

.checklist-num {
	font-size: var(--size-small);
	font-weight: var(--fontweight-bold);
	color: rgb(var(--textcolor-secondary));
	min-width: 20px;
}

.checklist-title-text {
	flex: 1;
	font-size: var(--size-base);
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-main));
}

.chevron {
	font-size: 12px;
	line-height: 1;
	width: 16px;
	text-align: center;
	color: rgb(var(--textcolor-secondary));
	transition: transform var(--animation-timing-fast);
	flex-shrink: 0;
}

.checklist-item.open .chevron {
	transform: rotate(180deg);
}

.checklist-body {
	display: none;
	padding: 0 var(--spacing-medium-large) var(--spacing-medium-large) 58px;
	background: rgb(var(--background-upper));
}

.checklist-item.open .checklist-body {
	display: block;
}

.checklist-field {
	margin-bottom: 10px;
}

.checklist-field:last-child {
	margin-bottom: 0;
}

.field-label {
	font-size: var(--size-small);
	font-weight: var(--fontweight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: rgb(var(--textcolor-secondary));
	margin-bottom: 3px;
}

.field-value {
	font-size: var(--size-base);
	color: rgb(var(--textcolor-main));
	line-height: 1.6;
}

.suggestion-box {
	margin-top: 10px;
}

.jump-link {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-extra-small);
	margin-top: var(--spacing-small);
	padding: var(--spacing-extra-small) var(--spacing-small);
	background: transparent;
	border: 1px solid rgb(var(--border-warning-hard));
	border-radius: var(--border-radius-small);
	color: rgb(var(--textcolor-warning));
	font-size: var(--size-small);
	font-weight: var(--fontweight-semibold);
	cursor: pointer;
	transition: background var(--animation-timing-fast);
	text-decoration: none;
}

.jump-link:hover {
	background: rgba(234, 175, 59, 0.15);
}

.rewrite-highlight {
	transition: background var(--animation-timing-base);
	border-radius: var(--border-radius-small);
	padding: 2px 4px;
	margin: -2px -4px;
}

/* ─── Flowchart toolbar ───────────────────────────────── */
.flowchart-toolbar {
	display: flex;
	justify-content: flex-end;
	margin-bottom: var(--spacing-medium-large);
}

/* ─── Flowchart ───────────────────────────────────────── */
#flowchart-panel {
	min-height: 200px;
}

.flowchart-container {
	background: rgb(var(--background-main));
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-large);
	padding: 24px;
	overflow-x: auto;
	text-align: center;
}

.flowchart-empty {
	text-align: center;
	padding: 48px 24px;
	color: rgb(var(--textcolor-secondary));
}

.flowchart-empty-icon {
	font-size: 48px;
	line-height: 1;
	color: rgb(var(--textcolor-secondary));
	display: block;
	text-align: center;
	margin-bottom: var(--spacing-medium);
}

.flowchart-empty-title {
	font-size: var(--size-base);
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-heading));
	margin-bottom: 6px;
}

.flowchart-empty-sub {
	font-size: var(--size-small);
	color: rgb(var(--textcolor-secondary));
	max-width: 360px;
	margin: 0 auto;
	line-height: 1.5;
}

/* ─── Rewritten document ─────────────────────────────── */
.rewrite-toolbar {
	display: flex;
	gap: 10px;
	margin-bottom: var(--spacing-medium-large);
	justify-content: space-between;
	flex-wrap: wrap;
}

.rewrite-toolbar-left {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.btn-toolbar {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border: 1.25px solid rgb(222, 222, 222);
	background: #ffffff;
	color: rgb(1, 11, 34);
	border-radius: 5px;
	font-family: Poppins, sans-serif;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--animation-timing-fast), border-color var(--animation-timing-fast), color var(--animation-timing-fast);
	white-space: nowrap;
	text-decoration: none;
	box-sizing: border-box;
}

.btn-toolbar:hover {
	background: rgb(var(--background-btn-active));
	border-color: rgb(var(--border-btn-hover));
	color: rgb(var(--textcolor-btn-hover));
}

.btn-toolbar.copied {
	background: rgb(var(--background-success));
	border-color: rgb(var(--border-success-hard));
	color: rgb(var(--textcolor-success));
}

.btn-toolbar i {
	font-size: 14px;
	flex-shrink: 0;
}

/* Editor canvas — grey surround */
.rewrite-content {
	background: #e8e8e8;
	border-radius: var(--border-radius-large);
	padding: 32px 24px;
}


.rewrite-content::-webkit-scrollbar-thumb:hover {
	background: #888888;
}

/* Overlay is positioned relative to the rewrite panel */
#rewrite-panel {
	position: relative;
}

.rewrite-overlay {
	position: absolute;
	inset: 0;
	background: rgba(232, 232, 232, 0.85);
	backdrop-filter: blur(3px);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 80px;
	z-index: 10;
	border-radius: var(--border-radius-large);
}

.rewrite-overlay.hidden {
	display: none;
}

.rewrite-overlay-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	font-family: Poppins, sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: rgb(1, 11, 34);
}

/* The white "paper" page centred on the canvas */
.rewrite-content .editor-page {
	background: #ffffff;
	max-width: 760px;
	margin: 0 auto;
	padding: 60px 72px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.06);
	border-radius: 2px;
	min-height: 500px;
	box-sizing: border-box;
}

/* Markdown rendering styles */
.rewrite-content h1 {
	font-size: 1.5rem;
	font-weight: 700;
	color: rgb(var(--textcolor-heading));
	margin-bottom: 24px;
	padding-bottom: 12px;
	border-bottom: 2px solid rgb(var(--border-soft));
	line-height: 1.3;
}

.rewrite-content h2 {
	font-size: 1.1rem;
	font-weight: 700;
	color: rgb(var(--textcolor-subheading));
	margin-top: 32px;
	margin-bottom: 10px;
	line-height: 1.4;
}

.rewrite-content h3 {
	font-size: var(--size-base);
	font-weight: var(--fontweight-bold);
	color: rgb(var(--textcolor-subheading));
	margin-top: 20px;
	margin-bottom: 6px;
}

.rewrite-content p {
	font-size: 14px;
	color: rgb(var(--textcolor-main));
	margin-bottom: 12px;
	line-height: 1.8;
}

.rewrite-content ul,
.rewrite-content ol {
	padding-left: 28px;
	margin-bottom: 14px;
}

.rewrite-content li {
	font-size: 14px;
	color: rgb(var(--textcolor-main));
	margin-bottom: 6px;
	line-height: 1.8;
}

.rewrite-content strong {
	font-weight: var(--fontweight-bold);
	color: rgb(var(--textcolor-heading));
}

.rewrite-content em {
	font-style: italic;
}

.rewrite-content .md-table {
	width: 100%;
	border-collapse: collapse;
	margin: 16px 0;
	font-size: 14px;
}

.rewrite-content .md-table th,
.rewrite-content .md-table td {
	border: 1px solid rgb(var(--border-soft));
	padding: 8px 12px;
	text-align: left;
	vertical-align: top;
	line-height: 1.5;
}

.rewrite-content .md-table th {
	background: #f2f2f2;
	font-weight: 600;
	color: rgb(1, 11, 34);
}

.rewrite-content .md-table tr:nth-child(even) td {
	background: #fafafa;
}

@media (max-width: 680px) {
	.rewrite-content .editor-page {
		padding: 32px 24px;
	}

	.chat-panel {
		width: 100vw;
		max-width: 100vw;
	}
}

/* ─── Chat panel ─────────────────────────────────────── */
/* Backdrop */
.chat-backdrop {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.25);
	z-index: 200;
}

.chat-backdrop.open {
	display: block;
}

/* Slide-in sidebar */
.chat-panel {
	position: fixed;
	top: 0;
	right: 0;
	height: 100dvh;
	width: 280px;
	max-width: calc(100vw - 24px);
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border-left: 1.25px solid rgb(222, 222, 222);
	box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
	z-index: 201;
	transform: translateX(100%);
	transition: transform 0.3s ease;
}

.chat-panel.open {
	transform: translateX(0);
}

.chat-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 14px 16px;
	background: #f7f7f7;
	border-bottom: 1.25px solid rgb(222, 222, 222);
	font-family: Poppins, sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: rgb(1, 11, 34);
	flex-shrink: 0;
}

.chat-close-btn {
	background: none;
	border: none;
	cursor: pointer;
	color: rgb(1, 11, 34);
	font-size: 16px;
	padding: 2px 4px;
	line-height: 1;
	opacity: 0.6;
	transition: opacity 0.15s;
}

.chat-close-btn:hover {
	opacity: 1;
}

.chat-suggestions {
	padding: 12px 16px;
	border-bottom: 1.25px solid rgb(222, 222, 222);
	flex-shrink: 0;
}

.chat-suggestions-label {
	font-family: Poppins, sans-serif;
	font-size: 11px;
	font-weight: 600;
	color: rgb(120, 120, 130);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0 0 8px 0;
}

.chat-suggestions-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.suggestion-chip {
	background: #f4f4f6;
	border: 1.25px solid rgb(222, 222, 222);
	border-radius: 20px;
	padding: 4px 12px;
	font-family: Poppins, sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: rgb(1, 11, 34);
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
	white-space: nowrap;
}

.suggestion-chip:hover {
	background: rgb(1, 11, 34);
	border-color: rgb(1, 11, 34);
	color: #ffffff;
}

.chat-history {
	flex: 1;
	padding: 16px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.chat-msg {
	max-width: 75%;
	padding: 8px 12px;
	border-radius: 8px;
	font-size: 13px;
	line-height: 1.5;
	word-break: break-word;
}

.chat-msg-user {
	align-self: flex-end;
	background: rgb(var(--primary-100));
	color: rgb(var(--primary-575));
	border-bottom-right-radius: 2px;
}

.chat-msg-assistant {
	align-self: flex-start;
	background: #f0f0f0;
	color: rgb(1, 11, 34);
	border-bottom-left-radius: 2px;
}

.chat-msg-error {
	align-self: flex-start;
	background: #fef2f2;
	color: #b91c1c;
	border: 1px solid #fca5a5;
	border-bottom-left-radius: 2px;
}

/* Typing dots animation */
.chat-dots {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	height: 18px;
}

.chat-dots span {
	width: 7px;
	height: 7px;
	background: #888;
	border-radius: 50%;
	animation: chat-dot-bounce 1.2s ease-in-out infinite;
}

.chat-dots span:nth-child(2) { animation-delay: 0.2s; }
.chat-dots span:nth-child(3) { animation-delay: 0.4s; }

@keyframes chat-dot-bounce {
	0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
	30%            { transform: translateY(-5px); opacity: 1; }
}

.chat-input-row {
	display: flex;
	gap: 10px;
	align-items: flex-end;
	padding: 12px 16px;
	border-top: 1.25px solid rgb(222, 222, 222);
	background: #fafafa;
}

.chat-input {
	flex: 1;
	resize: none;
	border: 1.25px solid rgb(222, 222, 222);
	border-radius: 6px;
	padding: 8px 12px;
	font-family: Poppins, sans-serif;
	font-size: 13px;
	color: rgb(1, 11, 34);
	line-height: 1.5;
	outline: none;
	background: #ffffff;
	transition: border-color 0.15s;
	min-height: 90px;
}

.chat-input:focus {
	border-color: rgb(1, 11, 34);
}

.chat-send-btn {
	flex-shrink: 0;
	align-self: flex-end;
}

/* ─── Version history ────────────────────────────────── */
.version-history {
	border-top: 1.25px solid rgb(222, 222, 222);
	flex-shrink: 0;
	max-height: 180px;
	display: flex;
	flex-direction: column;
}

.version-history-header {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 10px 16px;
	font-family: Poppins, sans-serif;
	font-size: 11px;
	font-weight: 600;
	color: rgb(100, 100, 110);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	background: #fafafa;
	border-bottom: 1px solid rgb(235, 235, 235);
	flex-shrink: 0;
}

.version-history-list {
	overflow-y: auto;
	flex: 1;
}

.version-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 7px 16px;
	border-bottom: 1px solid rgb(242, 242, 242);
	gap: 8px;
}

.version-row:last-child {
	border-bottom: none;
}

.version-row.version-current {
	background: #f7f7ff;
}

.version-label {
	font-family: Poppins, sans-serif;
	font-size: 12px;
	color: rgb(1, 11, 34);
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.version-current-badge {
	font-family: Poppins, sans-serif;
	font-size: 10px;
	font-weight: 600;
	color: #6366f1;
	background: #eef2ff;
	border-radius: 10px;
	padding: 2px 8px;
	flex-shrink: 0;
}

.version-restore-btn {
	font-family: Poppins, sans-serif;
	font-size: 11px;
	font-weight: 600;
	color: rgb(1, 11, 34);
	background: none;
	border: 1.25px solid rgb(222, 222, 222);
	border-radius: 4px;
	padding: 2px 10px;
	cursor: pointer;
	flex-shrink: 0;
	transition: background 0.15s, border-color 0.15s;
}

.version-restore-btn:hover {
	background: rgb(1, 11, 34);
	border-color: rgb(1, 11, 34);
	color: #ffffff;
}

/* ─── Compare / diff view ────────────────────────────── */
.compare-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--spacing-small);
	margin-bottom: var(--spacing-medium-large);
}

.compare-legend {
	display: flex;
	align-items: center;
	gap: var(--spacing-medium);
	flex-wrap: wrap;
}

.legend-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 10px;
	border-radius: var(--border-radius-small);
	font-size: var(--size-small);
	font-weight: var(--fontweight-semibold);
}

.legend-marker {
	font-weight: var(--fontweight-bold);
}

.legend-removed {
	background: rgba(195, 0, 28, 0.08);
	color: rgb(var(--red-475));
	border: 1px solid rgba(195, 0, 28, 0.25);
}

.legend-added {
	background: rgba(0, 124, 63, 0.08);
	color: rgb(var(--green-475));
	border: 1px solid rgba(0, 124, 63, 0.25);
}

.legend-unchanged {
	background: rgb(var(--background-main));
	color: rgb(var(--textcolor-secondary));
	border: 1px solid rgb(var(--border-soft));
}

.compare-capped-notice {
	font-size: var(--size-small);
	color: rgb(var(--textcolor-secondary));
	background: rgb(var(--background-warning));
	border: 1px solid rgb(var(--border-warning-soft));
	border-radius: var(--border-radius-small);
	padding: 4px 10px;
}

.compare-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-medium-large);
	align-items: start;
}

.compare-pane {
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-large);
	overflow: hidden;
	min-width: 0;
}

.compare-pane-header {
	padding: var(--spacing-small) var(--spacing-medium-large);
	background: rgb(var(--background-main));
	border-bottom: 1px solid rgb(var(--border-soft));
	font-size: var(--size-small);
	font-weight: var(--fontweight-bold);
	color: rgb(var(--textcolor-secondary));
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.compare-pane-body {
	max-height: 640px;
	overflow-y: auto;
	overflow-x: hidden;
}

.compare-empty {
	padding: 24px;
	color: rgb(var(--textcolor-secondary));
	font-size: var(--size-base);
}

.diff-line {
	display: flex;
	align-items: baseline;
	min-height: 1.4em;
	padding: 1px 10px;
	font-size: var(--size-base);
	line-height: 1.6;
	color: rgb(var(--textcolor-main));
}

.diff-line.diff-empty {
	min-height: 1em;
}

.diff-line.diff-deleted {
	background: rgba(195, 0, 28, 0.07);
	border-left: 3px solid rgba(195, 0, 28, 0.6);
	color: rgb(195, 0, 28);
	padding-left: 7px;
}

.diff-line.diff-inserted {
	background: rgba(0, 124, 63, 0.07);
	border-left: 3px solid rgba(0, 124, 63, 0.6);
	color: rgb(0, 100, 50);
	padding-left: 7px;
}

.diff-gutter {
	flex-shrink: 0;
	width: 14px;
	font-weight: var(--fontweight-bold);
	opacity: 0.65;
	user-select: none;
	margin-right: 6px;
	font-size: var(--size-base);
}

.diff-text {
	flex: 1;
	min-width: 0;
	word-break: break-word;
}

/* ─── Compare: wider layout when active ─────────────── */
.app-main.compare-active {
	max-width: 1280px;
}

/* ─── Diff heading styles ────────────────────────────── */
.diff-line.diff-h1 {
	padding-top: 10px;
	padding-bottom: 4px;
	margin-bottom: 2px;
	border-bottom: 1px solid rgb(var(--border-soft));
}

.diff-line.diff-h1 .diff-text {
	font-size: 1.1em;
	font-weight: var(--fontweight-bold);
}

.diff-line.diff-h2 {
	padding-top: 8px;
}

.diff-line.diff-h2 .diff-text {
	font-size: 1em;
	font-weight: var(--fontweight-bold);
}

.diff-line.diff-h3 .diff-text {
	font-weight: var(--fontweight-semibold);
}

/* Heading color only when not flagged as a diff change */
.diff-line:not(.diff-deleted):not(.diff-inserted).diff-h1 .diff-text,
.diff-line:not(.diff-deleted):not(.diff-inserted).diff-h2 .diff-text,
.diff-line:not(.diff-deleted):not(.diff-inserted).diff-h3 .diff-text {
	color: rgb(var(--textcolor-heading));
}

/* ─── Hidden utility ─────────────────────────────────── */
.hidden {
	display: none !important;
}

/* ─── Responsive ─────────────────────────────────────── */
@media (max-width: 640px) {
	.app-main {
		padding: var(--spacing-medium-large) var(--spacing-medium-large) 48px;
	}

	.card {
		padding: 20px;
	}

	.form-row {
		grid-template-columns: 1fr;
	}

	.loading-body {
		flex-direction: column;
		align-items: center;
	}

	.loading-preview-col {
		flex: none;
	}

	.loading-info-col {
		width: 100%;
		align-items: center;
		text-align: center;
	}

	.doc-stats-row {
		justify-content: center;
	}

	.loading-steps-list {
		width: 100%;
	}

	.results-overview {
		grid-template-columns: 1fr;
	}

	.score-circle-wrap {
		flex-direction: row;
		align-items: center;
	}

	.score-circle {
		width: 80px;
		height: 80px;
	}

	.score-value {
		font-size: 1.5rem;
	}

	.checklist-body {
		padding-left: var(--spacing-medium-large);
	}

	.compare-layout {
		grid-template-columns: 1fr;
	}

	.compare-pane-body {
		max-height: 400px;
	}
}

/* ─── Track-changes toolbar ──────────────────────────────── */
.tc-toolbar {
	display: none; /* shown only when panel has .has-tracked-changes */
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px var(--spacing-medium-large);
	background: rgb(var(--background-warning));
	border-bottom: 1px solid rgb(var(--border-warning-hard));
	border-radius: var(--border-radius-large) var(--border-radius-large) 0 0;
	font-size: var(--size-base);
	color: rgb(var(--textcolor-warning));
	flex-wrap: wrap;
}

.tc-toolbar-left {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: var(--fontweight-semibold);
}

.tc-toolbar-right {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Show/hide based on panel state */
#rewrite-panel.has-tracked-changes .tc-toolbar      { display: flex; }
#rewrite-panel.has-tracked-changes .rewrite-toolbar { display: flex; margin-top: var(--spacing-medium-large); }
#rewrite-panel.has-tracked-changes .rewrite-pre-banner { display: none; }

/* ─── Track-changes document sections ────────────────────── */
.tc-page {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.tc-section {
	position: relative;
}

.tc-section + .tc-section {
	margin-top: 2px;
}

/* ─── Plain editable sections (finalized view) ──────────── */
.plain-section {
	position: relative;
}

/* ─── Section action buttons (edit + delete, appear on hover) */
.section-edit-btn,
.section-delete-btn {
	position: absolute;
	top: 6px;
	display: none;
	align-items: center;
	gap: 5px;
	padding: 3px 8px;
	background: rgb(var(--background-main));
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-small);
	font-size: 0.75rem;
	color: rgb(var(--textcolor-secondary));
	cursor: pointer;
	z-index: 5;
	white-space: nowrap;
}

.section-edit-btn   { right: 38px; }
.section-delete-btn { right: 6px; }

.tc-section:not([data-editing="true"]):hover > .section-edit-btn,
.tc-section:not([data-editing="true"]):hover > .section-delete-btn,
.plain-section:not([data-editing="true"]):hover > .section-edit-btn,
.plain-section:not([data-editing="true"]):hover > .section-delete-btn {
	display: flex;
}

/* ─── Toast UI Editor overrides ──────────────────────────── */
.toastui-editor-defaultUI {
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-small);
	font-family: inherit;
}

.toastui-editor-toolbar {
	border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
	background: rgb(var(--background-main));
	border-bottom-color: rgb(var(--border-soft));
}

.toastui-editor-main {
	font-family: inherit;
	font-size: var(--size-base);
	color: rgb(var(--textcolor-main));
}

.toastui-editor-ww-container {
	background: rgb(var(--background-card));
}

.ProseMirror {
	padding: 12px 16px;
}

/* ─── Section inline editor ──────────────────────────────── */
.editor-cdn-notice {
	font-size: var(--size-small);
	color: rgb(var(--textcolor-warning));
	margin: 0 0 6px;
}

.section-editor-textarea {
	width: 100%;
	min-height: 180px;
	font-family: monospace;
	font-size: 0.85rem;
	line-height: 1.6;
	padding: 10px 12px;
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-small);
	resize: vertical;
	box-sizing: border-box;
	background: rgb(var(--background-main));
	color: rgb(var(--textcolor-main));
}

.section-editor-actions {
	display: flex;
	gap: 8px;
	margin-top: 8px;
	justify-content: flex-end;
}

/* ─── Session cost widget (footer button + upward popover) ── */
.session-cost-widget {
	position: relative;
	font-size: var(--size-small);
}

.session-cost-toggle {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	background: rgb(var(--background-main));
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-large);
	cursor: pointer;
	font-size: var(--size-small);
	color: rgb(var(--textcolor-secondary));
	white-space: nowrap;
}

.session-cost-toggle:hover {
	border-color: rgb(var(--border-btn-hover));
	color: rgb(var(--textcolor-main));
}

.session-cost-summary {
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-main));
}

.session-cost-body {
	display: none;
	position: absolute;
	bottom: calc(100% + 8px);
	right: 0;
	min-width: 300px;
	background: #ffffff;
	border: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-large);
	box-shadow: 0 4px 16px rgba(0,0,0,0.12);
	padding: var(--spacing-medium-large);
	z-index: 50;
}

.session-cost-widget.open .session-cost-body {
	display: block;
}

.sc-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 5px 0;
	gap: var(--spacing-medium);
}

.sc-row + .sc-row {
	border-top: 1px solid rgb(var(--border-soft));
}

.sc-label {
	color: rgb(var(--textcolor-secondary));
	flex-shrink: 0;
}

.sc-value {
	color: rgb(var(--textcolor-main));
	font-variant-numeric: tabular-nums;
	text-align: right;
}

.sc-dim {
	color: rgb(var(--textcolor-secondary));
	font-size: 0.78rem;
}

.sc-total-row {
	padding-top: 8px;
	border-top: 2px solid rgb(var(--border-soft)) !important;
	margin-top: 2px;
}

.sc-total-row .sc-value,
.sc-model .sc-value {
	font-weight: var(--fontweight-semibold);
}

/* ─── Undo toast ─────────────────────────────────────────── */
.undo-toast {
	position: fixed;
	bottom: 28px;
	left: 50%;
	transform: translateX(-50%);
	background: rgb(var(--textcolor-heading));
	color: #fff;
	padding: 12px 20px;
	border-radius: var(--border-radius-large);
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: var(--size-base);
	z-index: 1000;
	white-space: nowrap;
	box-shadow: 0 4px 16px rgba(0,0,0,0.18);
	animation: toastSlideUp 0.2s ease;
}

@keyframes toastSlideUp {
	from { opacity: 0; transform: translateX(-50%) translateY(8px); }
	to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.undo-toast-btn {
	background: none;
	border: none;
	color: rgb(var(--primary-275));
	font-weight: var(--fontweight-semibold);
	font-size: var(--size-base);
	cursor: pointer;
	padding: 0;
}

.tc-content {
	padding: 4px 0;
}

/* Modified section — amber left border + tint */
.tc-section.tc-modified > .tc-content {
	border-left: 3px solid rgb(var(--yellow-200));
	padding-left: 14px;
	background: rgba(249, 233, 207, 0.35);
	border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
}

/* Added section — green left border + tint */
.tc-section.tc-added > .tc-content {
	border-left: 3px solid rgb(var(--green-325));
	padding-left: 14px;
	background: rgba(195, 252, 210, 0.35);
	border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
}

/* Removed section — red left border + tint */
.tc-section.tc-removed > .tc-content {
	border-left: 3px solid rgb(var(--red-325));
	padding-left: 14px;
	background: rgba(251, 211, 207, 0.35);
	border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
}

/* Resolved states */
.tc-section.tc-resolved-accepted > .tc-content {
	border-left: 3px solid rgb(var(--green-325));
	padding-left: 14px;
}

/* ─── Change bubble ───────────────────────────────────────── */
.tc-bubble {
	margin: 14px 0 16px 18px;
	border-radius: var(--border-radius-small);
	border: 1px solid rgb(var(--border-soft));
	background: rgb(var(--background-upper));
	box-shadow: 0 1px 4px rgba(0,0,0,0.06);
	overflow: hidden;
	font-size: 0.82rem;
}

.tc-bubble-modified { border-left: 3px solid rgb(var(--yellow-200)); }
.tc-bubble-added    { border-left: 3px solid rgb(var(--green-325)); }
.tc-bubble-removed  { border-left: 3px solid rgb(var(--red-325)); }

.tc-bubble-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 12px;
	background: rgb(var(--background-main));
	border-bottom: 1px solid rgb(var(--border-soft));
}

.tc-tag {
	font-size: 0.72rem;
	font-weight: var(--fontweight-semibold);
	padding: 2px 8px;
	border-radius: 20px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.tc-tag-modified { background: rgb(var(--background-warning)); color: rgb(var(--textcolor-warning)); }
.tc-tag-added    { background: rgb(var(--background-success)); color: rgb(var(--textcolor-success)); }
.tc-tag-removed  { background: rgb(var(--background-error));   color: rgb(var(--textcolor-error)); }

.tc-bubble-btns {
	display: flex;
	gap: 6px;
	flex-shrink: 0;
}

.tc-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 10px;
	border-radius: var(--border-radius-small);
	border: 1px solid rgb(var(--border-hard));
	background: rgb(var(--background-upper));
	font-size: 0.78rem;
	font-weight: var(--fontweight-semibold);
	cursor: pointer;
	transition: background var(--animation-timing-fast), color var(--animation-timing-fast);
}

.tc-btn-accept { color: rgb(var(--textcolor-success)); border-color: rgb(var(--border-success-hard)); }
.tc-btn-accept:hover { background: rgb(var(--background-success)); }

.tc-btn-reject { color: rgb(var(--textcolor-error)); border-color: rgb(var(--border-error-hard)); }
.tc-btn-reject:hover { background: rgb(var(--background-error)); }

.tc-summary {
	padding: 8px 12px 2px;
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-heading));
	margin: 0;
}

.tc-rationale {
	padding: 2px 12px 8px;
	color: rgb(var(--textcolor-secondary));
	margin: 0;
	line-height: 1.5;
}

.tc-original {
	margin: 0 12px 10px;
	border-radius: var(--border-radius-small);
	border: 1px solid rgb(var(--border-soft));
	overflow: hidden;
}

.tc-original-label {
	padding: 4px 10px;
	background: rgb(var(--background-main));
	font-size: 0.72rem;
	font-weight: var(--fontweight-semibold);
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: rgb(var(--textcolor-secondary));
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border-bottom: 1px solid rgb(var(--border-soft));
}

.tc-original-text {
	padding: 8px 10px;
	color: rgb(var(--textcolor-secondary));
	line-height: 1.5;
	max-height: 120px;
	overflow: hidden;
	transition: max-height 0.25s ease;
}

.tc-original-text.expanded {
	max-height: 2000px;
}

.tc-original-expand-btn {
	background: none;
	border: none;
	padding: 0;
	font-size: 0.72rem;
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-link));
	cursor: pointer;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Legacy resolved bubble state (kept for safety) */
.tc-bubble-resolved {
	border: none;
	box-shadow: none;
	border-left: none;
}

.tc-resolved-notice {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	padding: 6px 12px;
	font-size: 0.78rem;
	color: rgb(var(--textcolor-secondary));
}

/* ─── Locked / disabled tab buttons ──────────────────────── */
.tab-btn--locked {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}

/* ─── Checklist checkbox ──────────────────────────────────── */
.check-select-wrap {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	cursor: pointer;
	padding: 2px 6px 2px 0;
}

.check-select {
	width: 15px;
	height: 15px;
	cursor: pointer;
	accent-color: rgb(var(--background-actbtn));
	flex-shrink: 0;
}

/* ─── Rewrite action bar ──────────────────────────────────── */
.rewrite-action-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px var(--spacing-medium-large);
	margin-bottom: 12px;
	background: rgb(var(--background-upper));
	border-bottom: 1px solid rgb(var(--border-soft));
	border-radius: var(--border-radius-small);
	position: sticky;
	top: 0;
	z-index: 10;
}

.action-bar-info {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.action-bar-count {
	font-size: var(--size-base);
	color: rgb(var(--textcolor-secondary));
	white-space: nowrap;
}

.action-bar-links {
	display: flex;
	gap: 6px;
}

.btn-link {
	background: none;
	border: none;
	padding: 0 4px;
	font-size: var(--size-small);
	color: rgb(var(--textcolor-link));
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.btn-link:hover { color: rgb(var(--primary-575)); }

.btn-rewrite {
	white-space: nowrap;
	flex-shrink: 0;
}

/* ─── Pre-rewrite banner ──────────────────────────────────── */
.rewrite-pre-banner {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 18px;
	background: rgb(var(--background-info));
	border-bottom: 1px solid rgb(var(--border-info));
	border-radius: var(--border-radius-large) var(--border-radius-large) 0 0;
	font-size: var(--size-base);
	color: rgb(var(--textcolor-link));
}

.rewrite-pre-banner > i {
	margin-top: 2px;
	flex-shrink: 0;
	font-size: 1rem;
	color: rgb(var(--yellow-200));
}

.pre-banner-title {
	font-weight: var(--fontweight-semibold);
	color: rgb(var(--textcolor-heading));
	margin-bottom: 2px;
}

.pre-banner-sub {
	font-size: 0.82rem;
	color: rgb(var(--textcolor-secondary));
	line-height: 1.5;
}

/* Hide banner and show toolbar only when rewrite exists */
#rewrite-panel:not(.has-rewrite) .rewrite-toolbar { display: none; }
#rewrite-panel.has-rewrite       .rewrite-pre-banner { display: none; }

/* ─── Original document display ──────────────────────────── */
.original-doc-text {
	white-space: pre-wrap;
	font-family: inherit;
	font-size: var(--size-base);
	line-height: 1.7;
	margin: 0;
	color: rgb(var(--textcolor-main));
}

/* ─── Rewrite error message ───────────────────────────────── */
.rewrite-error-msg {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 20px;
	color: rgb(var(--textcolor-error));
	font-size: var(--size-base);
}

/* ─── Action bar: two-button layout ──────────────────────── */
.action-bar-btns {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

.btn-full-rewrite {
	background: transparent;
	border: 1.25px solid rgb(var(--border-hard));
	color: rgb(var(--textcolor-secondary));
	white-space: nowrap;
	flex-shrink: 0;
}
.btn-full-rewrite:hover {
	background: rgb(var(--background-info));
	border-color: rgb(var(--primary-275));
	color: rgb(var(--textcolor-link));
}

/* ─── TC toolbar: mode badge ──────────────────────────────── */
.tc-mode-badge {
	display: inline-flex;
	align-items: center;
	font-size: 0.7rem;
	font-weight: var(--fontweight-semibold);
	padding: 2px 8px;
	border-radius: 20px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	flex-shrink: 0;
}
.tc-mode-badge:empty { display: none; }

.tc-mode-full {
	background: rgb(var(--background-info));
	color: rgb(var(--textcolor-link));
	border: 1px solid rgb(var(--border-info));
}

.tc-mode-ai {
	background: rgba(var(--primary-575), 0.08);
	color: rgb(var(--primary-575));
	border: 1px solid rgba(var(--primary-575), 0.25);
}

.tc-mode-selected {
	background: rgb(var(--background-warning));
	color: rgb(var(--textcolor-warning));
	border: 1px solid rgb(var(--yellow-200));
}

/* ─── TC show/hide changes toggle ────────────────────────── */
#rewrite-panel.tc-changes-hidden .tc-bubble  { display: none; }
#rewrite-panel.tc-changes-hidden .tc-content { border-left: none !important; padding-left: 0 !important; background: none !important; opacity: 1 !important; }
#rewrite-panel.tc-changes-hidden .tc-section { opacity: 1 !important; }

/* ─── TC toolbar: finalize button ─────────────────────────── */
.tc-finalize-btn {
	background: rgb(var(--green-475));
	color: white;
	border-color: transparent;
}
.tc-finalize-btn:hover {
	background: rgb(0, 100, 50);
	border-color: transparent;
	color: white;
}

/* ─── TC rejected section states ──────────────────────────── */

/* Modified rejected: shows kept original — subtle grey border only */
.tc-section.tc-resolved-rejected:not([data-segment-type="added"]) > .tc-content {
	border-left: 3px solid rgb(var(--greyscale-200));
	padding-left: 14px;
	border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
}

/* Added rejected: proposed content won't be included — dimmed + red tint */
.tc-section.tc-resolved-rejected[data-segment-type="added"] > .tc-content {
	border-left: 3px solid rgb(var(--red-325));
	padding-left: 14px;
	background: rgba(251, 211, 207, 0.2);
	opacity: 0.5;
	border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
}

/* ─── TC resolved bubble variants ────────────────────────── */
.tc-bubble-resolved-accepted {
	border: none;
	box-shadow: none;
}

.tc-bubble-resolved-rejected {
	border: 1px solid rgba(195, 0, 28, 0.25);
	border-left: 3px solid rgb(var(--red-325));
	background: rgba(251, 211, 207, 0.2);
	box-shadow: none;
}

.tc-resolved-rejected-notice {
	justify-content: space-between;
	color: rgb(var(--textcolor-error));
}

/* ─── Selection-to-rewrite floating button ───────────────── */
.selection-rewrite-btn {
	position: absolute;
	z-index: 9999;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	background: rgb(var(--primary-575));
	color: #fff;
	border: none;
	border-radius: 20px;
	font-family: Poppins, sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 3px 10px rgba(0,0,0,0.2);
	transition: background var(--animation-timing-fast), transform var(--animation-timing-fast);
	white-space: nowrap;
}
.selection-rewrite-btn:hover {
	background: rgb(var(--primary-475));
	transform: translateY(-1px);
}

.selection-highlight-overlay {
	position: absolute;
	pointer-events: none;
	z-index: 199;
	background: rgba(var(--primary-575), 0.14);
	border: 1.5px solid rgba(var(--primary-575), 0.4);
	border-radius: 3px;
}

/* ─── Undo button inside rejected bubble ──────────────────── */
.tc-undo-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 10px;
	border-radius: var(--border-radius-small);
	border: 1px solid rgb(var(--border-hard));
	background: rgb(var(--background-upper));
	color: rgb(var(--textcolor-secondary));
	font-size: 0.75rem;
	font-weight: var(--fontweight-semibold);
	cursor: pointer;
	transition: background var(--animation-timing-fast), border-color var(--animation-timing-fast);
}
.tc-undo-btn:hover {
	background: rgb(var(--background-main));
	border-color: rgb(var(--greyscale-275));
	color: rgb(var(--textcolor-main));
}
