/**
 * Vision Agent – komplett styling.
 *
 * Använder uteslutande globala design-tokens från global.css.
 * Inga hårdkodade --vision-*-variabler.
 *
 * Struktur:
 *  1. Delad bas (form, chips, sliders, tema-väljare, upload)
 *  2. Visionsmakaren (intro-sida + wizard modal)
 *  3. Galleriet (toolbar, kort, pagination)
 *  4. Inställningar (lista + slide-in panel)
 *  5. Intro-sida
 *  6. Spinner
 *  7. Rich editor (toolbar + contenteditable)
 *  8. Dark mode
 *  9. Responsiv
 *
 * @package Cctrl\Theme
 */

/* ================================================================
   1. DELAD BAS
   ================================================================ */

/* Form groups */
.cctrl-vision-form-group {
	margin-bottom: var(--space-5, 24px);
}

.cctrl-vision-form-group label {
	display: block;
	font-size: var(--text-sm, 0.875rem);
	font-weight: 600;
	color: var(--ink);
	margin-bottom: var(--space-2, 8px);
}

.cctrl-vision-form-group input[type="text"],
.cctrl-vision-form-group input[type="password"],
.cctrl-vision-form-group select,
.cctrl-vision-form-group textarea {
	width: 100%;
	padding: var(--space-2, 8px) var(--space-3, 12px);
	border: 1.5px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	font-size: 1rem;
	font-family: inherit;
	color: var(--ink);
	background: var(--bg);
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

/* Säkerställ att option-text syns i alla webbläsare */
.cctrl-vision-form-group select {
	color: var(--ink);
}

.cctrl-vision-form-group select option {
	color: var(--ink);
	background: var(--bg);
}

html[data-theme="dark"] .cctrl-vision-form-group select option {
	color: var(--ink);
	background: var(--bg);
}

.cctrl-vision-form-group input[type="text"]:focus,
.cctrl-vision-form-group input[type="password"]:focus,
.cctrl-vision-form-group select:focus,
.cctrl-vision-form-group textarea:focus {
	outline: none;
	border-color: var(--lav-500);
	box-shadow: 0 0 0 3px rgba(98, 100, 167, 0.18);
}

.cctrl-vision-form-group textarea {
	min-height: 96px;
	resize: vertical;
}

.cctrl-vision-field-hint {
	font-size: var(--text-xs, 0.75rem);
	color: var(--muted);
	margin-bottom: var(--space-3, 12px);
	line-height: 1.5;
}

.cctrl-vision-optional {
	font-weight: 400;
	color: var(--muted);
	font-size: 0.85em;
}

.cctrl-vision-check-label {
	display: flex;
	align-items: center;
	gap: var(--space-2, 8px);
	cursor: pointer;
	font-weight: 500;
	font-size: var(--text-sm, 0.875rem);
	color: var(--ink);
}

/* Chips */
.cctrl-vision-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2, 8px);
}

.cctrl-vision-chip {
	padding: 5px 14px;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	border-radius: 999px;
	border: 1.5px solid var(--outline);
	background: transparent;
	color: var(--ink);
	cursor: pointer;
	font-family: inherit;
	transition: all 0.18s ease;
}

.cctrl-vision-chip:hover {
	border-color: var(--lav-500);
	color: var(--lav-500);
}

.cctrl-vision-chip.selected {
	background: var(--lav-500);
	border-color: var(--lav-500);
	color: var(--lav-500-text, #fff);
}

.cctrl-vision-chip-add {
	padding: 5px 14px;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	border-radius: 999px;
	border: 1.5px dashed var(--lav-500);
	background: transparent;
	color: var(--lav-500);
	cursor: pointer;
	font-family: inherit;
	transition: background 0.18s ease;
}

.cctrl-vision-chip-add:hover {
	background: rgba(98, 100, 167, 0.08);
}

/* Sliders */
.cctrl-vision-sliders {
	display: flex;
	flex-direction: column;
	gap: var(--space-4, 20px);
}

.cctrl-vision-slider-row {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--space-3, 12px);
}

.cctrl-vision-slider-label {
	font-size: var(--text-xs, 0.75rem);
	color: var(--muted);
	line-height: 1.4;
}

.cctrl-vision-slider-label:last-child {
	text-align: right;
}

.cctrl-vision-slider-row input[type="range"] {
	width: 100%;
	accent-color: var(--lav-500);
}

/* Check-grid */
.cctrl-vision-check-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-3, 12px);
}

.cctrl-vision-check-item {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2, 8px);
	padding: var(--space-3, 12px);
	border: 1.5px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	cursor: pointer;
	background: var(--bg);
	transition: border-color 0.18s ease, background 0.18s ease;
}

.cctrl-vision-check-item:hover {
	border-color: var(--lav-500);
}

.cctrl-vision-check-item.on {
	border-color: var(--lav-500);
	background: var(--lav-100);
}

.cctrl-vision-check-item input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.cctrl-vision-check-box {
	width: 20px;
	height: 20px;
	border-radius: 5px;
	border: 1.5px solid var(--outline);
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 2px;
	transition: background 0.18s ease, border-color 0.18s ease;
}

.cctrl-vision-check-box::after {
	content: '';
	width: 10px;
	height: 7px;
	border-left: 2px solid white;
	border-bottom: 2px solid white;
	transform: rotate(-45deg) translateY(-1px);
	display: none;
}

.cctrl-vision-check-item.on .cctrl-vision-check-box {
	background: var(--lav-500);
	border-color: var(--lav-500);
}

.cctrl-vision-check-item.on .cctrl-vision-check-box::after {
	display: block;
}

.cctrl-vision-check-text strong {
	font-size: var(--text-sm, 0.875rem);
	font-weight: 700;
	color: var(--ink);
	display: block;
	margin-bottom: 2px;
	line-height: 1.3;
}

.cctrl-vision-check-text span {
	font-size: var(--text-xs, 0.75rem);
	color: var(--muted);
	line-height: 1.4;
}

/* Radio-grupp (strategiska val) */
.cctrl-vision-radio-group {
	display: flex;
	flex-direction: column;
	gap: var(--space-2, 8px);
}

.cctrl-vision-radio-item {
	display: flex;
	align-items: center;
	gap: var(--space-2, 8px);
	padding: var(--space-2, 8px) var(--space-3, 12px);
	border: 1.5px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	cursor: pointer;
	font-size: var(--text-sm, 0.875rem);
	color: var(--ink);
	font-weight: 500;
	transition: border-color 0.18s ease, background 0.18s ease;
}

.cctrl-vision-radio-item:hover {
	border-color: var(--lav-500);
}

.cctrl-vision-radio-item.selected,
.cctrl-vision-radio-item:has(input:checked) {
	border-color: var(--lav-500);
	background: var(--lav-100);
}

.cctrl-vision-radio-item input {
	accent-color: var(--lav-500);
	flex-shrink: 0;
}

/* Tonalitets-grid */
.cctrl-vision-tone-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-2, 8px);
}

.cctrl-vision-tone-item {
	display: flex;
	align-items: center;
	gap: var(--space-2, 8px);
	padding: var(--space-3, 12px);
	border: 1.5px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	cursor: pointer;
	font-size: var(--text-sm, 0.875rem);
	color: var(--ink);
	font-weight: 500;
	transition: border-color 0.18s ease, background 0.18s ease;
}

.cctrl-vision-tone-item:hover {
	border-color: var(--lav-500);
}

.cctrl-vision-tone-item.selected,
.cctrl-vision-tone-item:has(input:checked) {
	border-color: var(--lav-500);
	background: var(--lav-100);
}

.cctrl-vision-tone-item input {
	accent-color: var(--lav-500);
	flex-shrink: 0;
}

.cctrl-vision-tone-label {
	line-height: 1.3;
}

/* Upload-zon */
.cctrl-vision-upload-zone {
	border: 2px dashed var(--lav-500, #6264a7);
	border-radius: var(--radius-sm, 8px);
	padding: var(--space-5, 24px);
	text-align: center;
	background: var(--lav-100);
	cursor: pointer;
	transition: border-color 0.18s ease, background 0.18s ease;
}

.cctrl-vision-upload-zone:hover,
.cctrl-vision-upload-zone:focus {
	border-color: var(--lav-900, #3d3e66);
	background: rgba(98, 100, 167, 0.06);
	outline: none;
}

.cctrl-vision-upload-zone__icon {
	display: block;
	margin: 0 auto var(--space-2, 8px);
	color: var(--lav-500);
}

.cctrl-vision-upload-zone__text {
	font-size: var(--text-sm, 0.875rem);
	font-weight: 600;
	color: var(--lav-500);
	display: block;
	margin-bottom: 4px;
}

.cctrl-vision-upload-zone__meta {
	font-size: var(--text-xs, 0.75rem);
	color: var(--muted);
	display: block;
}

.cctrl-vision-upload-preview {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-3, 12px);
	position: relative;
}

.cctrl-vision-upload-preview img {
	max-height: 48px;
	object-fit: contain;
}

.cctrl-vision-upload-remove {
	position: absolute;
	top: -8px;
	right: -8px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--terracotta-500, #e57a55);
	color: white;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: background 0.18s ease;
}

.cctrl-vision-upload-remove:hover {
	background: var(--terracotta-900, #a94c2d);
}

/* Tema-väljare (gemensam) */
.cctrl-vision-theme-desc {
	font-size: var(--text-sm, 0.875rem);
	color: var(--muted);
	margin-bottom: var(--space-3, 12px);
	font-weight: 400;
}

.cctrl-vision-theme-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	gap: var(--space-2, 8px);
	margin-bottom: var(--space-3, 12px);
}

.cctrl-vision-theme-grid--small {
	grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
	gap: var(--space-2, 8px);
}

.cctrl-vision-theme-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-2, 8px);
	padding: var(--space-3, 12px);
	border: 1.5px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	background: var(--bg);
	cursor: pointer;
	font-family: inherit;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
	text-align: center;
}

.cctrl-vision-theme-card:hover {
	border-color: var(--lav-500);
}

.cctrl-vision-theme-card.selected {
	border-color: var(--lav-500);
	box-shadow: 0 0 0 3px rgba(98, 100, 167, 0.2);
}

.cctrl-vision-theme-swatches {
	display: flex;
	gap: 4px;
	justify-content: center;
}

.cctrl-vision-theme-swatch {
	width: 28px;
	height: 28px;
	border-radius: 6px;
	flex-shrink: 0;
	border: 1px solid rgba(0, 0, 0, 0.08);
}

.cctrl-vision-theme-label {
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	color: var(--muted);
	line-height: 1.3;
}

.cctrl-vision-theme-card.selected .cctrl-vision-theme-label {
	color: var(--lav-500);
}

/* Eget-sektion */
.cctrl-vision-custom-theme {
	display: none;
	padding: var(--space-3, 12px);
	background: var(--lav-100);
	border-radius: var(--radius-sm, 8px);
	border: 1px solid var(--outline);
	margin-top: var(--space-2, 8px);
}

.cctrl-vision-custom-theme.open {
	display: block;
}

.cctrl-vision-custom-colors {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4, 20px);
}

.cctrl-vision-custom-color-row {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.cctrl-vision-custom-color-row label {
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	color: var(--muted);
	margin-bottom: 0;
}

.cctrl-vision-custom-color-input {
	width: 48px;
	height: 48px;
	border: 1.5px solid var(--outline);
	border-radius: 10px;
	cursor: pointer;
	padding: 2px;
	background: transparent;
}

.cctrl-vision-custom-color-input::-webkit-color-swatch-wrapper {
	padding: 2px;
}

.cctrl-vision-custom-color-input::-webkit-color-swatch {
	border-radius: 6px;
	border: none;
}

/* Steg-navigering (wizard steps) */
.cctrl-vision-step-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: var(--space-6, 32px);
	padding-top: var(--space-4, 20px);
	border-top: 1px solid var(--outline);
	gap: var(--space-3, 12px);
}

.cctrl-vision-step-nav--first {
	justify-content: flex-end;
}

/* ================================================================
   2. VISIONSMAKAREN – SIDA + WIZARD MODAL
   ================================================================ */

/* Intro-sida (shortcode-wrappern) */
.cctrl-vision-page {
	max-width: 760px;
	margin: 0 auto;
	padding: var(--space-7, 48px) var(--space-5, 24px) var(--space-8, 64px);
}

.cctrl-vision-page-title {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h1, 2rem);
	font-weight: 700;
	color: var(--ink);
	margin-bottom: var(--space-3, 12px);
	line-height: 1.2;
}

.cctrl-vision-page-lead {
	font-size: 1.0625rem;
	color: var(--muted);
	line-height: 1.65;
	margin-bottom: var(--space-6, 32px);
	max-width: 580px;
}

/* Wizard modal */
.cctrl-vision-wizard {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal, 9000);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-4, 20px);
}

.cctrl-vision-wizard[hidden] {
	display: none;
}

.cctrl-vision-wizard__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 18, 45, 0.72);
}

.cctrl-vision-wizard__box {
	position: relative;
	width: min(680px, 96vw);
	max-height: 92vh;
	background: var(--bg);
	border-radius: var(--radius-md, 16px);
	box-shadow: var(--shadow-xl, 0 20px 60px rgba(0, 0, 0, 0.25));
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

/* Wizard header */
.cctrl-vision-wizard__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: var(--space-5, 24px) var(--space-6, 32px) var(--space-3, 12px);
	flex-shrink: 0;
	gap: var(--space-3, 12px);
	background: var(--lav-900);
}

.cctrl-vision-wizard__header-left {
	min-width: 0;
}

.cctrl-vision-wizard__eyebrow {
	font-size: var(--text-xs, 0.75rem);
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
	display: block;
	margin-bottom: var(--space-1, 4px);
}

.cctrl-vision-wizard__title {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h3, 1.25rem);
	font-weight: 700;
	color: #ffffff;
	margin: 0;
	line-height: 1.25;
}

.cctrl-vision-wizard__close {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: var(--radius-sm, 8px);
	background: rgba(255, 255, 255, 0.12);
	border: none;
	color: #ffffff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.18s ease, color 0.18s ease;
	margin-top: 2px;
}

.cctrl-vision-wizard__close:hover {
	background: rgba(255, 255, 255, 0.22);
	color: #ffffff;
}

/* Progressbar */
.cctrl-vision-wizard__progress {
	height: 4px;
	background: var(--lav-100);
	flex-shrink: 0;
}

.cctrl-vision-wizard__progress-fill {
	height: 100%;
	background: var(--lav-500);
	border-radius: 0 999px 999px 0;
	transition: width 0.3s ease;
}

/* Wizard body */
.cctrl-vision-wizard__body {
	flex: 1;
	overflow-y: auto;
	padding: var(--space-5, 24px) var(--space-6, 32px) var(--space-6, 32px);
}

/* Wizard footer (gemensam nav utanför scroll-zonen) */
.cctrl-vision-wizard__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--space-4, 20px) var(--space-6, 32px);
	background: var(--lav-50);
	border-top: 1px solid var(--outline);
	flex-shrink: 0;
	gap: var(--space-3, 12px);
}

.cctrl-vision-wizard__footer .btn--ghost {
	order: -1;
}

.cctrl-vision-wizard__footer .btn--primary,
.cctrl-vision-wizard__footer .btn--lav {
	margin-left: auto;
}

/* Steg (visas/döljs) */
.cctrl-vision-step {
	display: none;
}

.cctrl-vision-step.active {
	display: block;
}

.cctrl-vision-lead {
	font-size: 1rem;
	color: var(--muted);
	line-height: 1.65;
	margin-bottom: var(--space-5, 24px);
}

.cctrl-vision-eyebrow {
	font-size: var(--text-xs, 0.75rem);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--lav-500);
	margin-bottom: var(--space-2, 8px);
}

/* Login-prompt */
.cctrl-vision-login-prompt {
	padding: var(--space-7, 48px);
	text-align: center;
	color: var(--muted);
}

/* ================================================================
   3. GALLERIET
   ================================================================ */

.cctrl-vision-gate {
	padding: var(--space-7, 48px);
	text-align: center;
	color: var(--muted);
}

.cctrl-vision-gate .btn {
	margin-top: var(--space-3, 12px);
}

.cctrl-vision-gallery {
	padding: var(--space-5, 24px) 0;
}

/* Toolbar */
.cctrl-vision-gallery-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2, 8px);
	align-items: center;
	margin-bottom: var(--space-5, 24px);
	padding-bottom: var(--space-4, 20px);
	border-bottom: 1px solid var(--outline);
}

.cctrl-vision-toolbar-search {
	flex: 1;
	min-width: 180px;
	padding: var(--space-2, 8px) var(--space-3, 12px);
	border: 1.5px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	font-size: var(--text-sm, 0.875rem);
	font-family: inherit;
	color: var(--ink);
	background: var(--bg);
	transition: border-color 0.18s ease;
}

.cctrl-vision-toolbar-search:focus {
	outline: none;
	border-color: var(--lav-500);
	box-shadow: 0 0 0 3px rgba(98, 100, 167, 0.18);
}

.cctrl-vision-toolbar-select {
	padding: var(--space-2, 8px) var(--space-3, 12px);
	border: 1.5px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	font-size: var(--text-sm, 0.875rem);
	font-family: inherit;
	color: var(--ink);
	background: var(--bg);
}

/* Galleri-grid */
.cctrl-vision-gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--space-5, 24px);
}

/* Galleriet – kort (identisk med Tips-/Nyhetskortet) */
/* Vision-kortet bygger på .card-basen i cctrl-components.css.
   Här definieras bara vision-specifika utökningar. */
.cctrl-vision-card {
	overflow: hidden; /* Behövs för accent-stripen */
}

/* Tunn accent-stripe överst */
.cctrl-vision-card__stripe {
	height: 5px;
	flex-shrink: 0;
}

.cctrl-vision-card__body {
	padding: var(--space-4, 20px);
	flex: 1;
}

/* Pills (bransch) */
.cctrl-vision-card__pills {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-1, 4px);
	margin-bottom: var(--space-3, 12px);
}

.cctrl-vision-card__pill {
	display: inline-block;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	color: var(--lav-500);
	background: var(--lav-100);
	padding: 2px 10px;
	border-radius: 999px;
}

/* Titel */
.cctrl-vision-card__title {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h4, 1rem);
	font-weight: 700;
	color: var(--ink);
	margin: 0 0 var(--space-3, 12px);
	line-height: 1.3;
	padding-right: var(--space-7, 40px); /* plats för hjärtat */
}

.cctrl-vision-card__title a {
	color: inherit;
	text-decoration: none;
}

.cctrl-vision-card__title a:hover {
	color: var(--lav-500);
}

/* Hjärta-favorit: utökar .app-fav-btn-basen från cctrl-components.css.
   Klassen .cctrl-vision-fav-btn läggs till i HTML bredvid .app-fav-btn. */
.cctrl-vision-fav-btn.is-fav {
	color: var(--red-500, #ef4444);
}

/* Excerpt */
.cctrl-vision-card__excerpt {
	font-size: var(--text-sm, 0.875rem);
	color: var(--ink);
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Kortfot */
.cctrl-vision-card__footer {
	padding: var(--space-3, 12px) var(--space-4, 20px);
	border-top: 1px solid var(--outline);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-2, 8px);
}

.cctrl-vision-card__date {
	font-size: var(--text-xs, 0.75rem);
	color: var(--muted);
}

.cctrl-vision-card__footer-actions {
	display: flex;
	gap: var(--space-1, 4px);
}

.btn--xs {
	padding: 4px 10px;
	font-size: var(--text-xs, 0.75rem);
}

/* Tomt galleri */
.cctrl-vision-gallery-empty {
	padding: var(--space-7, 48px);
	text-align: center;
	color: var(--muted);
}

/* ----------------------------------------------------------------
   Vision gallery-kort – banner-struktur (app shell-standard)
   news-feed.css laddas ej på vision-sidor → definiera här.
   ---------------------------------------------------------------- */
.ffn__card--vision {
	padding: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.ffn__card--vision .news-card__banner {
	padding: 14px 16px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	min-height: 56px;
	flex-shrink: 0;
}

.ffn__card--vision .news-card__banner--terra {
	background: linear-gradient(135deg, var(--terra-600, #c2410c) 0%, var(--terra-400, #fb923c) 100%);
}

.ffn__card--vision .news-card__body {
	padding: 14px 16px 16px;
	flex: 1;
}

.ffn__card--vision .news-card__title {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h4, 1rem);
	font-weight: 700;
	color: var(--ink);
	margin: 0 0 var(--space-3, 12px);
	line-height: 1.3;
}

.ffn__card--vision .news-card__title a {
	color: inherit;
	text-decoration: none;
}

.ffn__card--vision .news-card__title a:hover {
	color: var(--lav-500);
}

.ffn__card--vision .ffn__summary {
	font-size: var(--text-sm, 0.875rem);
	color: var(--ink);
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ffn__card--vision .news-card__footer {
	border-top: 1px solid var(--lav-50);
	padding: 10px 16px 14px;
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-shrink: 0;
}

.ffn__card--vision .ffn__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.ffn__card--vision .ffn__pill {
	display: inline-block;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	color: #ffffff;
	background: rgba(255, 255, 255, 0.25);
	padding: 2px 10px;
	border-radius: 999px;
}

/* Paginering */
.cctrl-vision-gallery-pagination {
	margin-top: var(--space-6, 32px);
	text-align: center;
}

.cctrl-vision-gallery-pagination a,
.cctrl-vision-gallery-pagination span {
	display: inline-block;
	padding: var(--space-2, 8px) var(--space-3, 12px);
	margin: 2px;
	border-radius: var(--radius-sm, 8px);
	text-decoration: none;
	background: var(--lav-100);
	color: var(--ink);
	font-size: var(--text-sm, 0.875rem);
	transition: background 0.18s ease, color 0.18s ease;
}

.cctrl-vision-gallery-pagination a:hover {
	background: var(--lav-500);
	color: white;
}

.cctrl-vision-gallery-pagination .current {
	background: var(--lav-500);
	color: white;
	font-weight: 700;
}

/* ================================================================
   4. SIDEBAR
   ================================================================ */

.cctrl-vision-sidebar-wrap .cctrl-vision-sidebar__title,
.cctrl-vision-sidebar__title {
	font-size: var(--text-xs, 0.75rem);
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--lav-500);
	margin-bottom: var(--space-3, 12px);
}

.cctrl-vision-sidebar-desc {
	font-size: var(--text-sm, 0.875rem);
	color: var(--muted);
	line-height: 1.55;
	margin-bottom: var(--space-4, 20px);
}

.cctrl-vision-gallery-filters {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.cctrl-vision-filter-link {
	display: flex;
	align-items: center;
	gap: var(--space-2, 8px);
	padding: var(--space-2, 8px) var(--space-3, 12px);
	border-radius: var(--radius-sm, 8px);
	font-size: var(--text-sm, 0.875rem);
	color: var(--muted);
	text-decoration: none;
	transition: background 0.18s ease, color 0.18s ease;
}

.cctrl-vision-filter-link:hover,
.cctrl-vision-filter-link.active {
	background: rgba(98, 100, 167, 0.09);
	color: var(--ink);
	font-weight: 600;
}

.cctrl-vision-sidebar-heart {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	color: var(--terracotta-500, #e57a55);
}

.cctrl-vision-sidebar-heart svg {
	width: 100%;
	height: 100%;
}

.cctrl-vision-filter-divider {
	height: 1px;
	background: var(--outline);
	margin: var(--space-2, 8px) var(--space-3, 12px);
}

.cctrl-vision-sidebar-empty {
	font-size: var(--text-sm, 0.875rem);
	color: var(--muted);
	padding: var(--space-2, 8px) var(--space-3, 12px);
}

/* Settings sidebar nav */
.cctrl-vision-intro-nav,
.cctrl-vision-settings-nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.cctrl-vision-settings-nav-link {
	font-size: var(--text-xs, 0.75rem);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ================================================================
   5. INSTÄLLNINGAR
   ================================================================ */

.cctrl-vision-settings-app {
	padding: var(--space-5, 24px) 0;
}

.cctrl-vision-settings-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--space-5, 24px);
	padding-bottom: var(--space-4, 20px);
	border-bottom: 1px solid var(--outline);
	flex-wrap: wrap;
	gap: var(--space-3, 12px);
}

.cctrl-vision-settings-title {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h2, 1.5rem);
	font-weight: 700;
	color: var(--ink);
	margin: 0;
}

.cctrl-vision-settings-items {
	display: flex;
	flex-direction: column;
	gap: var(--space-3, 12px);
}

.cctrl-vision-settings-item {
	display: flex;
	align-items: center;
	gap: var(--space-3, 12px);
	padding: var(--space-3, 12px) var(--space-4, 20px);
	background: var(--bg);
	border: 1px solid var(--outline);
	border-radius: var(--radius-md, 16px);
	box-shadow: var(--shadow-sm, 0 1px 4px rgba(0, 0, 0, 0.04));
	transition: box-shadow 0.2s ease;
}

.cctrl-vision-settings-item:hover {
	box-shadow: var(--shadow-md, 0 4px 16px rgba(0, 0, 0, 0.08));
}

.cctrl-vision-settings-item__color {
	width: 10px;
	height: 44px;
	border-radius: 5px;
	flex-shrink: 0;
}

.cctrl-vision-settings-item__info {
	flex: 1;
	min-width: 0;
}

.cctrl-vision-settings-item__title {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: 1rem;
	font-weight: 700;
	color: var(--ink);
	margin: 0 0 4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cctrl-vision-settings-item__meta {
	font-size: var(--text-xs, 0.75rem);
	color: var(--muted);
	display: flex;
	gap: var(--space-3, 12px);
	flex-wrap: wrap;
}

.cctrl-vision-settings-item__actions {
	display: flex;
	gap: var(--space-2, 8px);
	flex-shrink: 0;
}

.btn--sm {
	padding: 6px 14px !important;
	font-size: var(--text-xs, 0.75rem) !important;
}

.btn--danger-ghost {
	background: transparent !important;
	color: var(--status-error, #D64545) !important;
	border: 1.5px solid rgba(214, 69, 69, 0.3) !important;
}

.btn--danger-ghost:hover {
	border-color: var(--status-error, #D64545) !important;
	background: rgba(214, 69, 69, 0.06) !important;
}

.cctrl-vision-settings-empty {
	text-align: center;
	padding: var(--space-7, 48px);
	color: var(--muted);
}

.cctrl-vision-settings-empty p {
	margin-bottom: var(--space-3, 12px);
}

/* Slide-in redigeringspanel */
.cctrl-vision-edit-panel {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal, 9000);
	pointer-events: none;
}

.cctrl-vision-edit-panel.open {
	pointer-events: auto;
}

.cctrl-vision-edit-panel__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.42);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.cctrl-vision-edit-panel.open .cctrl-vision-edit-panel__overlay {
	opacity: 1;
}

.cctrl-vision-edit-panel__drawer {
	position: absolute;
	top: 0;
	right: 0;
	width: min(680px, 100vw);
	height: 100%;
	background: var(--bg);
	box-shadow: -4px 0 40px rgba(0, 0, 0, 0.14);
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.cctrl-vision-edit-panel.open .cctrl-vision-edit-panel__drawer {
	transform: translateX(0);
}

.cctrl-vision-edit-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--space-4, 20px) var(--space-6, 32px);
	border-bottom: 1px solid var(--outline);
	flex-shrink: 0;
}

.cctrl-vision-edit-panel__heading {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h3, 1.125rem);
	font-weight: 700;
	color: var(--ink);
	margin: 0;
}

.cctrl-vision-edit-close {
	background: none;
	border: none;
	color: var(--muted);
	cursor: pointer;
	padding: var(--space-2, 8px);
	border-radius: var(--radius-sm, 8px);
	display: flex;
	align-items: center;
	transition: background 0.18s ease, color 0.18s ease;
}

.cctrl-vision-edit-close:hover {
	background: var(--lav-100);
	color: var(--ink);
}

.cctrl-vision-edit-panel__body {
	flex: 1;
	overflow-y: auto;
	padding: var(--space-5, 24px) var(--space-6, 32px);
}

.cctrl-vision-edit-input {
	width: 100%;
	padding: var(--space-2, 8px) var(--space-3, 12px);
	border: 1.5px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	font-size: 1rem;
	font-family: inherit;
	color: var(--ink);
	background: var(--bg);
}

.cctrl-vision-edit-input:focus {
	outline: none;
	border-color: var(--lav-500);
	box-shadow: 0 0 0 3px rgba(98, 100, 167, 0.18);
}

.cctrl-vision-edit-panel__footer {
	border-top: 1px solid var(--outline);
	padding: var(--space-4, 20px) var(--space-6, 32px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3, 12px);
	flex-shrink: 0;
	flex-wrap: wrap;
}

.cctrl-vision-edit-panel__footer-actions {
	display: flex;
	gap: var(--space-2, 8px);
}

.cctrl-vision-edit-status {
	font-size: var(--text-sm, 0.875rem);
	color: var(--muted);
}

.cctrl-vision-edit-status.success {
	color: var(--status-success, #3fa370);
}

.cctrl-vision-edit-status.error {
	color: var(--status-error, #D64545);
}

/* ================================================================
   6. INTRO-SIDA
   ================================================================ */

.cctrl-vision-intro {
	max-width: 860px;
	margin: 0 auto;
	padding: var(--space-5, 24px) var(--space-5, 24px) var(--space-8, 64px);
}

.cctrl-vision-intro-hero {
	text-align: center;
	padding: var(--space-8, 64px) 0 var(--space-7, 48px);
}

.cctrl-vision-intro-title {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-display, 2.25rem);
	font-weight: 800;
	color: var(--ink);
	margin-bottom: var(--space-3, 12px);
	line-height: 1.15;
}

.cctrl-vision-intro-lead {
	font-size: 1.125rem;
	color: var(--muted);
	line-height: 1.7;
	margin-bottom: var(--space-3, 12px);
	max-width: 580px;
	margin-left: auto;
	margin-right: auto;
}

.cctrl-vision-intro-pullquote {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ink);
	margin-bottom: var(--space-6, 32px);
	font-style: italic;
}

.cctrl-vision-intro .btn--lg {
	padding: var(--space-3, 12px) var(--space-6, 32px);
	font-size: 1.0625rem;
}

.cctrl-vision-intro-section {
	margin: var(--space-8, 64px) 0 0;
	padding-top: var(--space-6, 32px);
	border-top: 1px solid var(--outline);
}

.cctrl-vision-intro-section h2 {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h2, 1.5rem);
	font-weight: 700;
	color: var(--ink);
	margin-bottom: var(--space-3, 12px);
}

.cctrl-vision-intro-section p {
	font-size: 1rem;
	color: var(--ink);
	line-height: 1.7;
	margin-bottom: var(--space-3, 12px);
}

.cctrl-vision-intro-blockquote {
	background: var(--lav-100);
	border-left: 4px solid var(--lav-500);
	padding: var(--space-3, 12px) var(--space-5, 24px);
	border-radius: 0 var(--radius-sm, 8px) var(--radius-sm, 8px) 0;
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--lav-900, #3d3e66);
	margin: var(--space-5, 24px) 0;
}

/* Strategiska val */
.cctrl-vision-choices {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--space-4, 20px);
	margin-top: var(--space-4, 20px);
}

.cctrl-vision-choice-card {
	background: var(--bg);
	border: 1px solid var(--outline);
	border-radius: var(--radius-md, 16px);
	padding: var(--space-5, 24px);
	box-shadow: var(--shadow-sm, 0 1px 4px rgba(0, 0, 0, 0.04));
}

.cctrl-vision-choice-card h3 {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: 1rem;
	font-weight: 700;
	color: var(--ink);
	margin-bottom: var(--space-2, 8px);
}

.cctrl-vision-choice-card p {
	font-size: 0.9rem;
	color: var(--muted);
	line-height: 1.6;
	margin-bottom: var(--space-2, 8px);
}

.cctrl-vision-choice-tip {
	background: rgba(98, 100, 167, 0.08);
	border-radius: var(--radius-sm, 8px);
	padding: var(--space-3, 12px);
	font-size: var(--text-sm, 0.875rem);
	color: var(--ink);
	line-height: 1.6;
	margin-top: var(--space-2, 8px);
}

.cctrl-vision-choice-tip strong {
	display: block;
	color: var(--lav-500);
	margin-bottom: 4px;
}

.cctrl-vision-choice-meta {
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	color: var(--lav-500);
}

/* Branschexempel */
.cctrl-vision-examples {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--space-4, 20px);
	margin-top: var(--space-4, 20px);
}

.cctrl-vision-example-card {
	background: var(--bg);
	border: 1px solid var(--outline);
	border-radius: var(--radius-md, 16px);
	padding: var(--space-4, 20px);
}

.cctrl-vision-example-tag {
	display: inline-block;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--lav-500);
	background: var(--lav-100);
	padding: 2px 10px;
	border-radius: 999px;
	margin-bottom: var(--space-2, 8px);
}

.cctrl-vision-example-card h4 {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--ink);
	margin-bottom: var(--space-2, 8px);
	line-height: 1.3;
}

.cctrl-vision-example-vision {
	font-size: var(--text-sm, 0.875rem);
	color: var(--muted);
	line-height: 1.65;
	margin-bottom: var(--space-3, 12px);
	font-style: italic;
}

.cctrl-vision-example-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2, 8px);
}

.cctrl-vision-example-meta span {
	font-size: var(--text-xs, 0.75rem);
	color: var(--muted);
	background: var(--lav-100);
	padding: 2px 8px;
	border-radius: 999px;
}

/* Intro CTA */
.cctrl-vision-intro-cta {
	text-align: center;
	padding: var(--space-8, 64px) var(--space-5, 24px);
	background: var(--lav-100);
	border-radius: var(--radius-md, 16px);
	margin-top: var(--space-8, 64px);
}

.cctrl-vision-intro-cta h2 {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h2, 1.5rem);
	font-weight: 700;
	color: var(--ink);
	margin-bottom: var(--space-2, 8px);
}

.cctrl-vision-intro-cta p {
	color: var(--muted);
	margin-bottom: var(--space-5, 24px);
}

.cctrl-vision-intro-cta .btn {
	margin: 4px;
}

/* ================================================================
   7. SPINNER
   ================================================================ */

.cctrl-vision-spinner-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-3, 12px);
	padding: var(--space-6, 32px) 0;
}

.cctrl-spinner {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cctrl-spinner span {
	display: block;
	width: 40px;
	height: 40px;
	border: 3px solid var(--lav-100);
	border-top-color: var(--lav-500);
	border-radius: 50%;
	animation: cctrl-vision-spin 0.72s linear infinite;
}

@keyframes cctrl-vision-spin {
	to { transform: rotate(360deg); }
}

.cctrl-vision-spinner-label {
	font-size: var(--text-sm, 0.875rem);
	color: var(--muted);
	margin: 0;
}

.cctrl-vision-generate-area {
	margin-bottom: var(--space-5, 24px);
}

/* ================================================================
   8. RICH EDITOR (toolbar + contenteditable)
   ================================================================ */

.cctrl-vision-editor-toolbar {
	display: flex;
	align-items: center;
	gap: 2px;
	padding: var(--space-2, 8px);
	background: var(--lav-100);
	border: 1.5px solid var(--outline);
	border-bottom: none;
	border-radius: var(--radius-sm, 8px) var(--radius-sm, 8px) 0 0;
}

.cctrl-vision-toolbar-btn {
	min-width: 32px;
	height: 30px;
	padding: 0 6px;
	border-radius: 5px;
	border: none;
	background: transparent;
	color: var(--ink);
	font-family: inherit;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 700;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s ease, color 0.15s ease;
}

.cctrl-vision-toolbar-btn:hover {
	background: var(--outline);
}

.cctrl-vision-toolbar-btn:active {
	background: var(--lav-500);
	color: white;
}

.cctrl-vision-toolbar-sep {
	width: 1px;
	height: 20px;
	background: var(--outline);
	margin: 0 4px;
	flex-shrink: 0;
}

/* Contenteditable */
.cctrl-vision-editor-body {
	min-height: 200px;
	padding: var(--space-4, 20px) var(--space-5, 24px);
	border: 1.5px solid var(--outline);
	border-radius: 0 0 var(--radius-sm, 8px) var(--radius-sm, 8px);
	font-size: var(--text-base, 1rem);
	color: var(--ink);
	line-height: 1.75;
	background: var(--bg);
	outline: none;
	cursor: text;
}

.cctrl-vision-editor-body:focus {
	border-color: var(--lav-500);
	box-shadow: 0 0 0 3px rgba(98, 100, 167, 0.15);
}

.cctrl-vision-editor-body:empty::before {
	content: attr(data-placeholder);
	color: var(--muted);
	pointer-events: none;
}

.cctrl-vision-editor-body h1 {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h1, 2rem);
	font-weight: 800;
	color: var(--ink);
	margin: var(--space-4, 20px) 0 var(--space-2, 8px);
	line-height: 1.2;
}

.cctrl-vision-editor-body h1:first-child {
	margin-top: 0;
}

.cctrl-vision-editor-body h2 {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h2, 1.5rem);
	font-weight: 700;
	color: var(--ink);
	margin: var(--space-5, 24px) 0 var(--space-2, 8px);
	line-height: 1.25;
}

.cctrl-vision-editor-body h3 {
	font-family: var(--font-heading, 'Cooper Hewitt', sans-serif);
	font-size: var(--text-h3, 1.25rem);
	font-weight: 700;
	color: var(--lav-500);
	margin: var(--space-4, 20px) 0 var(--space-2, 8px);
}

.cctrl-vision-editor-body h3:first-child {
	margin-top: 0;
}

.cctrl-vision-editor-body p {
	margin-bottom: var(--space-3, 12px);
}

.cctrl-vision-editor-body ul {
	padding-left: var(--space-5, 24px);
	margin-bottom: var(--space-3, 12px);
}

.cctrl-vision-editor-body li {
	margin-bottom: 4px;
}

/* Steg 4-specifika åtgärdsknappar */
.cctrl-vision-editor-wrap {
	animation: vision-fadeIn 0.3s ease;
}

@keyframes vision-fadeIn {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

.cctrl-vision-step-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2, 8px);
	margin-top: var(--space-5, 24px);
}

/* ================================================================
   9. DARK MODE
   ================================================================ */

html[data-theme="dark"] .cctrl-vision-wizard__backdrop {
	background: rgba(6, 6, 20, 0.82);
}

html[data-theme="dark"] .cctrl-vision-intro-blockquote {
	background: rgba(98, 100, 167, 0.15);
	color: var(--lav-100, #f3f4fb);
}

html[data-theme="dark"] .cctrl-vision-choice-card,
html[data-theme="dark"] .cctrl-vision-example-card,
html[data-theme="dark"] .cctrl-vision-settings-item,
html[data-theme="dark"] .cctrl-vision-card {
	background: var(--bg);
	border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .cctrl-vision-edit-panel__drawer {
	background: var(--bg);
}

html[data-theme="dark"] .cctrl-vision-intro-cta {
	background: rgba(98, 100, 167, 0.1);
}

html[data-theme="dark"] .cctrl-vision-theme-card {
	background: var(--bg);
	border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .cctrl-vision-custom-theme {
	background: rgba(98, 100, 167, 0.1);
}

html[data-theme="dark"] .cctrl-vision-check-item,
html[data-theme="dark"] .cctrl-vision-radio-item,
html[data-theme="dark"] .cctrl-vision-tone-item {
	background: var(--bg);
	border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .cctrl-vision-upload-zone {
	background: rgba(98, 100, 167, 0.12);
}

html[data-theme="dark"] .cctrl-vision-editor-toolbar {
	background: rgba(98, 100, 167, 0.1);
	border-color: rgba(255, 255, 255, 0.08);
}

html[data-theme="dark"] .cctrl-vision-editor-body {
	background: var(--bg);
	border-color: rgba(255, 255, 255, 0.08);
}

/* ================================================================
   10. RESPONSIV
   ================================================================ */

@media (max-width: 768px) {
	.cctrl-vision-check-grid {
		grid-template-columns: 1fr;
	}

	.cctrl-vision-tone-grid {
		grid-template-columns: 1fr;
	}

	.cctrl-vision-slider-row {
		grid-template-columns: 1fr;
	}

	.cctrl-vision-slider-label:last-child {
		text-align: left;
	}

	.cctrl-vision-wizard__body {
		padding: var(--space-4, 20px) var(--space-5, 24px) var(--space-5, 24px);
	}

	.cctrl-vision-wizard__header {
		padding: var(--space-4, 20px) var(--space-5, 24px) var(--space-2, 8px);
	}
}

@media (max-width: 600px) {
	.cctrl-vision-intro-title {
		font-size: var(--text-h1, 1.75rem);
	}

	.cctrl-vision-choices,
	.cctrl-vision-examples {
		grid-template-columns: 1fr;
	}

	.cctrl-vision-theme-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.cctrl-vision-settings-item {
		flex-wrap: wrap;
	}

	.cctrl-vision-settings-item__actions {
		flex-direction: row;
		width: 100%;
		padding-top: var(--space-2, 8px);
	}

	.cctrl-vision-gallery-grid {
		grid-template-columns: 1fr;
	}

	.cctrl-vision-step-nav {
		flex-wrap: wrap;
	}
}

/* ===================================================================
   Single vision-doc – vision-read-card
   Utökar tips-read-card-mönstret med vision-specifika tillägg.
   =================================================================== */

.content-area--cctrl-vision-doc .site-main {
	max-width: 100%;
}

.content-area--cctrl-vision-doc .site-main .tips-read-card {
	padding-top: 0.75rem;
	padding-bottom: 2rem;
}

/* Accent-stripe överst (tema-färg) */
.vision-read-card__theme-stripe {
	border-radius: var(--radius-md, 12px) var(--radius-md, 12px) 0 0;
}

/* Inner – ta bort övre kantlinje om stripe visas */
.vision-read-card__inner {
	position: relative;
}

/* Actions-rad: redigera + hjärta */
.vision-read-card__actions {
	display: flex;
	align-items: center;
	gap: var(--space-2, 8px);
	flex-shrink: 0;
}

/* Favorit-knapp i single-läge – inte absolut */
.vision-read-card__heart.app-fav-btn {
	position: relative;
	top: auto;
	right: auto;
}

/* Redigera-knapp */
.vision-read-card__edit-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1, 4px);
	padding: 6px 12px;
	font-size: var(--text-sm, 0.875rem);
	font-weight: 500;
	color: var(--lav-600, #5557a0);
	background: var(--lav-50, #f3f3fb);
	border: 1px solid var(--lav-200, #d4d5e8);
	border-radius: var(--radius-sm, 8px);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.vision-read-card__edit-btn:hover,
.vision-read-card__edit-btn[aria-pressed="true"] {
	background: var(--lav-100, #e8e9f3);
	color: var(--lav-700, #3d3e6e);
}

/* Verktygsfält för redigering */
.vision-read-card__toolbar {
	background: var(--lav-50, #f3f3fb);
	border: 1px solid var(--lav-200, #d4d5e8);
	border-radius: var(--radius-sm, 8px);
	padding: var(--space-2, 8px) var(--space-3, 12px);
	margin-bottom: var(--space-3, 12px);
}

.vision-read-card__toolbar-inner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-1, 6px);
}

.vision-read-card__toolbar-label {
	font-size: var(--text-xs, 0.75rem);
	color: var(--muted);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-right: var(--space-1, 4px);
}

.vision-read-card__toolbar-sep {
	width: 1px;
	height: 20px;
	background: var(--outline);
	margin: 0 var(--space-1, 4px);
}

/* Tema-prickar */
.vision-read-card__theme-dot {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform 0.15s ease, border-color 0.15s ease;
}

.vision-read-card__theme-dot:hover,
.vision-read-card__theme-dot.active {
	transform: scale(1.25);
	border-color: var(--ink);
}

/* Spara/avbryt-knappar */
.vision-read-card__save-btn {
	padding: 6px 14px;
	font-size: var(--text-sm, 0.875rem);
	font-weight: 600;
	color: #fff;
	background: var(--lav-500, #6264a7);
	border: none;
	border-radius: var(--radius-sm, 8px);
	cursor: pointer;
	transition: background 0.15s ease;
}

.vision-read-card__save-btn:hover {
	background: var(--lav-600, #5557a0);
}

.vision-read-card__cancel-btn {
	padding: 6px 14px;
	font-size: var(--text-sm, 0.875rem);
	font-weight: 500;
	color: var(--muted);
	background: transparent;
	border: 1px solid var(--outline);
	border-radius: var(--radius-sm, 8px);
	cursor: pointer;
}

/* Contenteditable-markering */
.vision-read-card--editing .vision-read-card__title[contenteditable="true"],
.vision-read-card--editing .vision-read-card__content[contenteditable="true"] {
	outline: 2px solid var(--lav-300, #a8a9d4);
	outline-offset: 4px;
	border-radius: 4px;
	cursor: text;
}

html[data-theme="dark"] .vision-read-card__edit-btn {
	color: rgba(255,255,255,0.8);
	background: rgba(255,255,255,0.06);
	border-color: rgba(255,255,255,0.1);
}

html[data-theme="dark"] .vision-read-card__toolbar {
	background: rgba(255,255,255,0.04);
	border-color: rgba(255,255,255,0.1);
}
