/* ── KOPJRA DESIGN TOKENS ── */
:root {
	--primary: #5198f4;
	--primary-hover: #4b8adb;
	--success: #2bd18f;
	--success-hover: #21b87c;
	--warning: #ffa347;
	--danger: #ef615e;
	--secondary: #4e596b;
	--info: #2c8ed0;
	--dark: #363d49;
	--darker: #1d2430;
	--super-dark: #12181e;
	--light: #ffffff;
	--lightish: #8c9ab1;
	--cmp-bg: #dfe7f5;
	--drp-bg: #f0f3f9;
	--input-bg: #f6f6f7;
	--shadow: rgba(0, 0, 0, 0.12);
}

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

body {
	font-family:
		"Lato",
		-apple-system,
		sans-serif;
	background-color: #f4f6fb;
	color: var(--dark);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

/* ── SCREEN MANAGEMENT ── */
.screen {
	display: none;
	flex: 1;
	flex-direction: column;
}
.screen.active {
	display: flex;
}

/* ── NAVBAR ── */
.knavbar {
	background: var(--light);
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.16);
	padding: 0 24px;
	height: 56px;
	display: flex;
	align-items: center;
	gap: 0;
	position: sticky;
	top: 0;
	z-index: 1000;
	flex-shrink: 0;
}
.knavbar .brand {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	margin-right: 20px;
	text-decoration: none;
}
.knavbar .brand-logo {
	width: 32px;
	height: 32px;
	background: var(--primary);
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 1px;
}
.knavbar .brand-name {
	font-family: "Lato", sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--super-dark);
}
.knavbar .brand-sub {
	font-size: 8px;
	letter-spacing: 0.8px;
	color: var(--secondary);
	text-transform: uppercase;
	display: block;
	font-weight: 400;
	line-height: 1;
	margin-top: 1px;
}
.navbar-nav {
	display: flex;
	align-items: center;
	list-style: none;
	gap: 0;
	flex: 1;
}
.nav-link {
	font-family: "Lato", sans-serif;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 2.1px;
	text-transform: uppercase;
	color: var(--dark);
	padding: 18px 22px;
	cursor: pointer;
	text-decoration: none;
	display: block;
	border-bottom: 2px solid transparent;
	transition:
		color 0.15s,
		border-color 0.15s;
	white-space: nowrap;
}
.nav-link:hover {
	color: var(--primary);
}
.nav-link.active {
	color: var(--primary);
	border-bottom-color: var(--primary);
}
.navbar-right {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 16px;
}
.user-pill {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--secondary);
	cursor: pointer;
	padding: 6px 12px;
	border: 1px solid var(--cmp-bg);
}
.user-pill:hover {
	background: var(--drp-bg);
}

/* ── BUTTONS ── */
.btn {
	font-family: "Lato", sans-serif;
	font-size: 14px;
	letter-spacing: 2.1px;
	text-transform: uppercase;
	font-weight: 400;
	padding: 11px 22px;
	border: 2px solid transparent;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition:
		background 0.15s,
		border-color 0.15s;
	white-space: nowrap;
	text-decoration: none;
	border-radius: 0;
}
.btn-sm {
	padding: 7px 16px;
	font-size: 12px;
	letter-spacing: 1.7px;
}
.btn-xs {
	padding: 4px 12px;
	font-size: 11px;
	letter-spacing: 1.5px;
}
.btn-primary {
	background: var(--primary);
	border-color: var(--primary);
	color: white;
}
.btn-primary:hover {
	background: var(--primary-hover);
	border-color: var(--primary-hover);
}
.btn-success {
	background: var(--success);
	border-color: var(--success);
	color: white;
}
.btn-success:hover {
	background: var(--success-hover);
	border-color: var(--success-hover);
}
.btn-secondary {
	background: var(--lightish);
	border-color: var(--lightish);
	color: white;
}
.btn-secondary:hover {
	background: var(--secondary);
	border-color: var(--secondary);
}
.btn-outline-primary {
	background: white;
	border-color: var(--primary);
	color: var(--primary);
}
.btn-outline-primary:hover {
	background: var(--primary);
	color: white;
}
.btn-outline-danger {
	background: white;
	border-color: var(--danger);
	color: var(--danger);
}
.btn-outline-danger:hover {
	background: var(--danger);
	color: white;
}
.btn-outline-warning {
	background: white;
	border-color: var(--warning);
	color: var(--warning);
}
.btn-outline-warning:hover {
	background: var(--warning);
	color: white;
}
.btn-outline-secondary {
	background: white;
	border-color: var(--lightish);
	color: var(--secondary);
}
.btn-outline-secondary:hover {
	background: var(--secondary);
	color: white;
}
.btn-stript {
	background: transparent;
	border: none;
	color: var(--secondary);
	padding: 4px 8px;
	font-family: "Lato", sans-serif;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	font-weight: 400;
	cursor: pointer;
}
.btn-stript:hover {
	color: var(--primary);
}

/* ── CARD ── */
.kcard {
	background: white;
	box-shadow: 0 3px 20px var(--shadow);
	margin-bottom: 15px;
}
.kcard-header {
	padding: 12px 24px;
	font-family: "Lato", sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2.4px;
	color: var(--dark);
	background: white;
	border-bottom: 1px solid var(--cmp-bg);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	flex-direction: column;
}
.kcard-body {
	padding: 32px;
}
.kcard-body.pad-sm {
	padding: 20px 24px;
}

/* ── CONTAINER ── */
.kcontainer {
	max-width: 1400px;
	margin: 0 auto;
	padding: 28px 24px;
	width: 100%;
	flex: 1;
}

/* ── KCREDIT / METRICS ── */
.metrics-row {
	display: flex;
	gap: 16px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}
.metric-box {
	flex: 1;
	min-width: 160px;
	background: white;
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: center;
	text-align: center;
}
.metric-label {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--lightish);
}
.metric-value {
	font-family: "Lato", sans-serif;
	font-size: 38px;
	font-weight: 500;
	line-height: 1;
}
.metric-value.primary {
	color: var(--primary);
}
.metric-value.secondary {
	color: var(--secondary);
}
.metric-value.danger {
	color: var(--danger);
}

/* ── TABLES ── */
.ktable-wrapper {
	overflow-x: auto;
	width: 100%;
}
.ktable {
	width: 100%;
	border-collapse: collapse;
	font-size: 12px;
}
.ktable thead tr {
	background: var(--cmp-bg);
}
.ktable thead th {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--dark);
	padding: 10px 12px;
	border: none;
	white-space: nowrap;
}
.ktable thead th:first-child {
	padding-left: 16px;
}
.ktable tbody tr {
	height: 44px;
	border-top: 1px solid var(--cmp-bg);
}
.ktable tbody tr:hover {
	background: #5198f408;
	cursor: pointer;
}
.ktable tbody td {
	padding: 8px 12px;
	vertical-align: middle;
	color: var(--dark);
}
.ktable tbody td:first-child {
	padding-left: 16px;
}

/* Column alignment overrides */
.ktable-ricerche :is(th, td):nth-child(1),
.ktable-ricerche :is(th, td):nth-child(2),
.ktable-dettaglio-risultati th:nth-child(2),
.ktable-dettaglio-risultati td:nth-child(2),
.ktable-dettaglio-risultati th:nth-child(3),
.ktable-dettaglio-risultati td:nth-child(3),
.ktable-dettaglio-risultati th:nth-child(4),
.ktable-dettaglio-risultati td:nth-child(4),
.ktable-dettaglio-risultati th:nth-child(6),
.ktable-dettaglio-risultati td:nth-child(6),
.ktable-risultati :is(th, td):nth-child(3),
.ktable-risultati :is(th, td):nth-child(4),
.ktable-risultati :is(th, td):nth-child(6) {
	text-align: left;
}

.ktable-ricerche :is(th, td):nth-child(3),
.ktable-dettaglio-risultati th:nth-child(5),
.ktable-dettaglio-risultati td:nth-child(5),
.ktable-risultati :is(th, td):nth-child(7) {
	text-align: center;
}

  .ktable-ricerche :is(th, td):nth-child(4),
  .ktable-ricerche :is(th, td):nth-child(5),
  .ktable-risultati :is(th, td):nth-child(5) {
    text-align: right;
  }

  /* Verifica marchi — Trademark Checker Agent */
  .ktable-verifica-marchi :is(th, td):nth-child(1),
  .ktable-verifica-marchi :is(th, td):nth-child(2),
  .ktable-verifica-marchi :is(th, td):nth-child(3) {
    text-align: left;
  }
  .ktable-verifica-marchi :is(th, td):nth-child(4),
  .ktable-verifica-marchi :is(th, td):nth-child(5),
  .ktable-verifica-marchi :is(th, td):nth-child(6) {
    text-align: center;
  }

  /* Ricerca marketplace — Brand Protector Agent */
  .ktable-ricerca-marketplace :is(th, td):nth-child(1),
  .ktable-ricerca-marketplace :is(th, td):nth-child(4) {
    text-align: left;
  }
  .ktable-ricerca-marketplace :is(th, td):nth-child(2) {
    text-align: center;
  }
  .ktable-ricerca-marketplace :is(th, td):nth-child(3),
  .ktable-ricerca-marketplace :is(th, td):nth-child(5) {
    text-align: right;
  }
.ktable-footer {
	border-top: 8px solid var(--cmp-bg);
	padding: 10px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 10px;
	font-family: "Lato", sans-serif;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--lightish);
}
.ktable-footer .pager {
	display: flex;
	align-items: center;
	gap: 8px;
}
.ktable-footer .pager button {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--dark);
	font-size: 13px;
	padding: 2px 6px;
	font-weight: 700;
}
.ktable-footer .pager button:hover {
	color: var(--primary);
}

/* ── TOOLBAR (filtri tabella) ── */
.ktable-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 16px;
	border-bottom: 1px solid var(--cmp-bg);
	gap: 12px;
	flex-wrap: wrap;
}
.ktable-toolbar .toolbar-left {
	display: flex;
	align-items: center;
	gap: 8px;
}
.ktable-toolbar .toolbar-right {
	display: flex;
	align-items: center;
	gap: 6px;
}
.toolbar-action {
	background: none;
	border: none;
	cursor: pointer;
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--lightish);
	padding: 8px 12px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.toolbar-action:hover {
	color: var(--secondary);
}
.toolbar-action.active {
	color: var(--primary);
}
.toolbar-action i {
	font-size: 15px;
}
.search-input {
	height: 34px;
	padding: 0 12px;
	border: 1px solid var(--cmp-bg);
	background: var(--input-bg);
	font-family: "Lato", sans-serif;
	font-size: 12px;
	color: var(--dark);
	outline: none;
	width: 220px;
}
.search-input:focus {
	border-bottom-color: var(--primary);
	border-bottom-width: 2px;
}

/* ── BADGES ── */
.badge {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	font-weight: 700;
	padding: 3px 8px;
	display: inline-block;
}
.badge-danger {
	background: #fde8e8;
	color: var(--danger);
}
.badge-warning {
	background: #fff3e0;
	color: var(--warning);
}
.badge-secondary {
	background: var(--cmp-bg);
	color: var(--secondary);
}
.badge-success {
	background: #e2faf1;
	color: var(--success);
}
.badge-primary {
	background: #e8f2fe;
	color: var(--primary);
}
.badge-info {
	background: #e3f2fd;
	color: var(--info);
}

/* ── STATUS DOTS ── */
.status-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	display: inline-block;
	margin-right: 8px;
}
.status-dot.primary {
	background: var(--primary);
}
.status-dot.success {
	background: var(--success);
}

/* ── STEP PROGRESS ── */
.kstep-progress {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 24px 0 8px;
	position: relative;
	counter-reset: step;
}
.kstep {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	flex: 1;
}
.kstep:not(:first-child)::before {
	content: "";
	position: absolute;
	top: 7px;
	right: 50%;
	width: 100%;
	height: 3px;
	background: var(--cmp-bg);
	z-index: 0;
}
.kstep.done:not(:first-child)::before,
.kstep.active:not(:first-child)::before {
	background: var(--primary);
}
.step-dot {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--cmp-bg);
	border: 3px solid var(--cmp-bg);
	z-index: 1;
	position: relative;
}
.kstep.active .step-dot {
	background: var(--primary);
	border-color: var(--primary);
}
.kstep.done .step-dot {
	background: var(--primary);
	border-color: var(--primary);
}
.step-label {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--lightish);
	margin-top: 10px;
	text-align: center;
}
.kstep.active .step-label {
	color: var(--primary);
}
.kstep.done .step-label {
	color: var(--primary);
}

/* Extra breathing room for Nuova Ricerca stepper */
#new-stepper {
	margin-bottom: 20px;
}

/* ── STEP CONTENT ── */
.step-content-area {
	padding: 24px 0 0;
}
.step-panel {
	display: none;
}
.step-panel.active {
	display: block;
}
.step-section-title {
	font-family: "Lato", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.65px;
	text-transform: uppercase;
	color: var(--secondary);
	margin-bottom: 12px;
}

/* ── FORM INPUTS ── */
.k-input-group {
	margin-bottom: 20px;
}
.k-input-label {
	font-family: "Lato", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.65px;
	text-transform: uppercase;
	color: var(--secondary);
	display: block;
	margin-bottom: 4px;
}
.k-input {
	width: 100%;
	height: 40px;
	background: var(--input-bg);
	border: 1px solid var(--input-bg);
	padding: 0 12px;
	font-family: "SourceSansPro", sans-serif;
	font-size: 14px;
	color: var(--dark);
	outline: none;
}
.k-input:focus {
	border-bottom: 2px solid var(--primary);
}
.k-input::placeholder {
	color: var(--dark);
	opacity: 0.39;
}
.k-textarea {
	width: 100%;
	min-height: 80px;
	background: var(--input-bg);
	border: 1px solid var(--input-bg);
	padding: 10px 12px;
	font-family: "SourceSansPro", sans-serif;
	font-size: 14px;
	color: var(--dark);
	outline: none;
	resize: vertical;
}
.k-textarea:focus {
	border-bottom: 2px solid var(--primary);
}
.k-textarea::placeholder {
	color: var(--dark);
	opacity: 0.39;
}
.k-file-label {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--primary);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.k-file-label i {
	font-size: 17px;
}
.k-file-name {
	font-size: 10px;
	color: var(--secondary);
	margin-left: 26px;
	margin-top: 4px;
	display: block;
}

/* ── THUMBNAIL ── */
.thumb {
	width: 42px;
	height: 42px;
	background: var(--cmp-bg);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lightish);
	font-size: 18px;
	overflow: hidden;
}
.thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ── ROW ACTIONS ── */
.row-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
	width: 100%;
}
.row-act {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--lightish);
	font-size: 15px;
	padding: 4px 6px;
	transition: color 0.1s;
}
.row-act:hover {
	color: var(--primary);
}
.row-act.danger:hover {
	color: var(--danger);
}

/* ── LINK BACK ── */
.link-back {
	font-family: "Lato", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--primary);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	background: none;
	border: none;
	padding: 0;
	text-decoration: none;
}
.link-back:hover {
	color: var(--primary-hover);
}

/* ── SCORE BAR ── */
.score-bar-wrap {
	margin-bottom: 10px;
}
.score-bar-label {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--secondary);
	display: flex;
	justify-content: space-between;
	margin-bottom: 4px;
}
.score-bar-track {
	height: 8px;
	background: var(--cmp-bg);
	width: 100%;
}
.score-bar-fill {
	height: 8px;
	transition: width 0.3s;
}
.score-bar-fill.danger {
	background: var(--danger);
}
.score-bar-fill.warning {
	background: var(--warning);
}
.score-bar-fill.secondary {
	background: var(--lightish);
}

/* ── SUMMARY TABLE (riepilogo) ── */
.summary-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.summary-table td {
	padding: 8px 4px;
	vertical-align: top;
}
.summary-table td:first-child {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--lightish);
	white-space: nowrap;
	padding-right: 20px;
	width: 180px;
}
.summary-table tr {
	border-bottom: 1px solid var(--cmp-bg);
}
.summary-table tr:last-child {
	border-bottom: none;
}

/* ── PRODUCT COMPARE LAYOUT ── */
.compare-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.compare-img-box {
	background: var(--cmp-bg);
	height: 240px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 48px;
	color: var(--lightish);
	margin-bottom: 12px;
}
.compare-detail-label {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--lightish);
}
.compare-detail-value {
	font-size: 14px;
	color: var(--dark);
	margin-bottom: 8px;
}
.ai-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

/* ── INLINE EDIT TAG ── */
.tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}
.ktag {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	background: var(--cmp-bg);
	color: var(--secondary);
	padding: 3px 10px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.edit-inline {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--lightish);
	font-size: 13px;
	padding: 2px;
}
.edit-inline:hover {
	color: var(--primary);
}

/* ── CTA SECTION ── */
.cta-section {
	background: var(--drp-bg);
	padding: 20px 24px;
	margin-top: 8px;
	border-top: 1px solid var(--cmp-bg);
}
.cta-title {
	font-family: "Lato", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.65px;
	text-transform: uppercase;
	color: var(--secondary);
	margin-bottom: 14px;
}
.cta-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.btn-cta-compact .label-short {
	display: none;
}

@media (max-width: 1349px) {
	.btn-cta-compact .label-full {
		display: none;
	}
	.btn-cta-compact .label-short {
		display: inline;
	}
}

@media (max-width: 899px) {
	.btn-cta-compact .label-full,
	.btn-cta-compact .label-short {
		display: none;
	}
}

/* ── SEPARATOR ── */
.col-sep {
	width: 1px;
	background: var(--cmp-bg);
	align-self: stretch;
	margin: 0 8px;
}
.row-sep {
	height: 1px;
	background: var(--cmp-bg);
	margin: 16px 0;
}

/* ── AI ANALYSIS TEXT ── */
.ai-analysis-text {
	font-size: 13px;
	line-height: 1.7;
	color: var(--secondary);
	font-family: "SourceSansPro", sans-serif;
}

/* ── KLABEL ── */
.klabel {
	font-family: "Lato", sans-serif;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.65px;
	color: var(--secondary);
}

/* ── FOOTER ── */
.kfooter {
	background-color: #181f28;
	color: white;
	text-align: center;
	padding: 40px 24px;
	flex-shrink: 0;
}
.kfooter .address {
	font-size: 14px;
	margin-bottom: 16px;
	line-height: 1.8;
}
.kfooter .address .line {
	display: block;
}
.kfooter .social {
	color: white;
	margin: 0 14px;
	font-size: 18px;
	text-decoration: none;
}
.kfooter .social:hover {
	color: var(--primary);
}
.kfooter .privacy {
	margin-top: 24px;
	font-family: "Lato", sans-serif;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.kfooter .privacy a {
	color: white;
	text-decoration: none;
	margin: 0 8px;
}
.kfooter .privacy a:hover {
	color: var(--primary);
}
.kfooter .extra {
	margin-top: 20px;
	font-size: 13px;
}

/* ── GRID UTILS ── */
.row {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
}
.col {
	flex: 1;
	min-width: 0;
}
.col-6 {
	flex: 0 0 calc(50% - 10px);
	min-width: 0;
}
.col-4 {
	flex: 0 0 calc(33.33% - 14px);
	min-width: 0;
}
.col-8 {
	flex: 0 0 calc(66.66% - 10px);
	min-width: 0;
}
.mt-4 {
	margin-top: 16px;
}
.mt-8 {
	margin-top: 24px;
}
.mb-4 {
	margin-bottom: 16px;
}
.flex {
	display: flex;
}
.flex-between {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.flex-end {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}
.flex-gap {
	display: flex;
	align-items: center;
	gap: 10px;
}
.text-lightish {
	color: var(--lightish);
	font-size: 12px;
}
.link-a {
	color: var(--primary);
	text-decoration: underline;
	font-size: 12px;
	cursor: pointer;
}
.fw-bold {
	font-weight: 700;
}

/* ── CHECKBOX ── */
input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--secondary);
	border: none;
	background: var(--cmp-bg);
	cursor: pointer;
}

/* ── REALTIME BADGE ── */
.realtime-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--primary);
}
.realtime-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--primary);
	animation: pulse 1.4s ease-in-out infinite;
}
@keyframes pulse {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.3;
	}
}

/* ── STEPPER FORM ── */
.stepper-buttons {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	padding-top: 20px;
	border-top: 1px solid var(--cmp-bg);
	margin-top: 24px;
}

/* ── SCREEN SWITCHER (dev bar) ── */
.dev-bar {
	background: var(--super-dark);
	padding: 6px 16px;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
	flex-wrap: wrap;
}
.dev-bar span {
	font-family: "Lato", sans-serif;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--lightish);
	margin-right: 4px;
}
.dev-btn {
	font-family: "Lato", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	background: none;
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: rgba(255, 255, 255, 0.5);
	padding: 3px 10px;
	cursor: pointer;
	transition: all 0.1s;
}
.dev-btn:hover,
.dev-btn.active {
	background: var(--primary);
	border-color: var(--primary);
	color: white;
}

/* ── MISC ── */
.section-gap {
	margin-bottom: 24px;
}
.img-placeholder {
	width: 100%;
	background: var(--cmp-bg);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lightish);
	font-size: 36px;
}
.product-img-official {
	height: 220px;
}
.product-img-suspect {
	height: 220px;
	background: #f9eded;
}
.fullwidth {
	width: 100%;
}
