/* ==========================================================================
   Ufaglært Company Dashboard
   Design-tokens matcher den uploadede mockup.
   ========================================================================== */

.cd-app,
.cd-apply,
.cd-modal {
	--cd-ink: #383051;
	--cd-ink2: #5a5270;
	--cd-muted: #8a8398;
	--cd-line: #ece5f1;
	--cd-line2: #e7e1f0;
	--cd-coral: #ed7d5b;
	--cd-green: #2f7d57;
	--cd-bg: #ffffff;
	--cd-fill: #f4f1f9; /* svag tint til små kontrast-flader på hvid baggrund */
	font-family: 'Hanken Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;
	color: var(--cd-ink);
	-webkit-font-smoothing: antialiased;
}

.cd-app *,
.cd-apply *,
.cd-modal * { box-sizing: border-box; }

/* ---- Layout -------------------------------------------------------------- */
.cd-app {
	display: flex;
	background: var(--cd-bg);
	min-height: 100vh; /* fuld højde – ingen tom bund */
}
.cd-main-wrap { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cd-main { flex: 1; padding: 26px 28px 44px; }

.cd-gate {
	padding: 48px 24px;
	text-align: center;
	font-size: 16px;
	color: var(--cd-ink2);
	background: var(--cd-bg);
	border-radius: 16px;
}

/* ---- Sidebar ------------------------------------------------------------- */
.cd-sidebar {
	width: 252px;
	flex-shrink: 0;
	background: var(--cd-ink);
	color: #fff;
	padding: 20px 14px;
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 0;
	align-self: flex-start;
	height: 100vh;
}
.cd-sidebar__head { display: flex; align-items: center; justify-content: space-between; margin: 4px 8px 22px; }
.cd-brand { display: flex; align-items: center; gap: 9px; text-decoration: none; color: #fff; }
.cd-brand__logo { height: 30px; width: auto; display: block; }
.cd-brand__mark {
	width: 30px; height: 30px; border-radius: 50%; background: #fff; color: var(--cd-ink);
	display: flex; align-items: center; justify-content: center;
	font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 20px;
}
.cd-brand__name { font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: 17px; }
.cd-sidebar__close { display: none; background: none; border: none; color: #fff; font-size: 26px; cursor: pointer; line-height: 1; }

.cd-nav { display: flex; flex-direction: column; gap: 3px; }
.cd-nav__item {
	display: flex; align-items: center; gap: 12px;
	padding: 11px 13px; border-radius: 11px;
	text-decoration: none;
	font-size: 14.5px; font-weight: 600;
	transition: background .15s, color .15s;
}
/* Tekstfarve sættes med .cd-sidebar-prefix (2 klasser), så temaets link-farve
   (fx en mørk a{color}) ikke kan overskrive og gøre labels usynlige. */
.cd-sidebar .cd-nav__item,
.cd-sidebar .cd-nav__item:link,
.cd-sidebar .cd-nav__item:visited { color: rgba(255, 255, 255, .75); }
.cd-sidebar .cd-nav__item:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.cd-sidebar .cd-nav__item.is-active { background: rgba(255, 255, 255, .14); color: #fff; }
.cd-sidebar .cd-nav__item--logout,
.cd-sidebar .cd-nav__item--logout:link,
.cd-sidebar .cd-nav__item--logout:visited { color: rgba(255, 255, 255, .55); }
.cd-sidebar .cd-nav__icon { display: flex; width: 20px; justify-content: center; color: rgba(255, 255, 255, .6); }
.cd-sidebar .cd-nav__item.is-active .cd-nav__icon { color: var(--cd-coral); }
.cd-sidebar .cd-nav__label { flex: 1; color: inherit; }
.cd-nav__badge {
	padding: 2px 8px; border-radius: 999px; background: var(--cd-coral);
	color: #fff; font-size: 11.5px; font-weight: 700;
}
.cd-nav__sep { height: 1px; background: rgba(255, 255, 255, .12); margin: 12px 6px; }
.cd-sidebar__cta { margin-top: 16px; }
.cd-sidebar .cd-cta-btn,
.cd-sidebar .cd-cta-btn:link,
.cd-sidebar .cd-cta-btn:visited { display: flex; align-items: center; justify-content: center; gap: 9px; padding: 12px 14px; border-radius: 11px; background: var(--cd-coral); color: #fff; font-weight: 600; font-size: 14.5px; text-decoration: none; transition: filter .15s; }
.cd-sidebar .cd-cta-btn:hover { filter: brightness(.94); color: #fff; }
.cd-sidebar__foot { margin-top: auto; padding-top: 12px; }
.cd-nav__item--logout { color: rgba(255, 255, 255, .5); }

/* ---- Topbar -------------------------------------------------------------- */
.cd-topbar {
	display: flex; align-items: center; gap: 18px;
	padding: 0 28px; height: 70px; flex-shrink: 0;
	background: #fff; border-bottom: 1px solid var(--cd-line);
	position: sticky; top: 0; z-index: 20;
}
.cd-topbar__menu { display: none; background: none; border: none; cursor: pointer; color: var(--cd-ink); padding: 6px; }
.cd-topbar__titles { flex: 1; min-width: 0; }
.cd-topbar__title { font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: 20px; line-height: 1.1; }
.cd-topbar__subtitle { font-size: 12.5px; color: var(--cd-muted); }
.cd-topbar__actions { display: flex; align-items: center; gap: 14px; }
.cd-avatar {
	width: 40px; height: 40px; border-radius: 11px; background: #e9e3f5;
	display: flex; align-items: center; justify-content: center;
	font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 14px; color: var(--cd-ink);
}

/* ---- Cards --------------------------------------------------------------- */
.cd-card { background: #fff; border: 1px solid var(--cd-line); border-radius: 18px; }
.cd-card--pad { padding: 24px; }
.cd-card--narrow { max-width: 640px; }
.cd-card__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.cd-card__head--bordered { padding: 20px 24px; margin: 0; border-bottom: 1px solid #f0ebf5; }
.cd-card__title { font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: 17px; }
.cd-card__sub { font-size: 12.5px; color: var(--cd-muted); margin-top: 2px; }
.cd-mb { margin-bottom: 16px; }
.cd-muted { color: var(--cd-muted); }

/* ---- Stat cards ---------------------------------------------------------- */
.cd-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 16px; }
.cd-stat { padding: 20px 22px; }
.cd-stat__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.cd-stat__label { font-size: 13px; color: var(--cd-muted); }
.cd-stat__icon { width: 33px; height: 33px; border-radius: 10px; display: flex; align-items: center; justify-content: center; }
.cd-stat__icon--violet { background: #f1edf7; color: #5b4b86; }
.cd-stat__icon--indigo { background: #e6e9f6; color: #5b4b86; }
.cd-stat__icon--coral { background: #fbe7de; color: #c25a35; }
.cd-stat__icon--green { background: #e3f1e9; color: var(--cd-green); }
.cd-stat__value-row { display: flex; align-items: baseline; gap: 9px; }
.cd-stat__value { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 28px; line-height: 1; }
.cd-stat__trend { display: inline-flex; align-items: center; gap: 1px; font-size: 12px; font-weight: 700; color: var(--cd-green); }
.cd-stat__trend.is-down { color: var(--cd-coral); }
.cd-stat__trend.is-down svg { transform: rotate(180deg); }
.cd-stat__sub { font-size: 12px; color: #b3acbf; margin-top: 6px; }

/* ---- Grid 2:1 ------------------------------------------------------------ */
.cd-grid-2-1 { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; margin-bottom: 16px; }

/* ---- Chart --------------------------------------------------------------- */
.cd-chart { display: flex; align-items: flex-end; gap: 8px; height: 170px; }
.cd-bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 7px; height: 100%; justify-content: flex-end; }
.cd-bar { width: 100%; background: #d6cbed; border-radius: 6px 6px 0 0; transition: background .15s; }
.cd-bar:hover { background: #bfb0d8; }
.cd-bar--now { background: var(--cd-coral); }
.cd-bar-label { font-size: 10.5px; color: #b3acbf; }

/* ---- Activity ------------------------------------------------------------ */
.cd-activity { display: flex; flex-direction: column; gap: 15px; }
.cd-activity__item { display: flex; gap: 12px; }
.cd-activity__icon { width: 34px; height: 34px; border-radius: 10px; background: #fbe7de; color: #c25a35; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cd-activity__text { font-size: 13.5px; line-height: 1.4; }
.cd-activity__time { font-size: 11.5px; color: #b3acbf; margin-top: 3px; }

/* ---- Tables -------------------------------------------------------------- */
.cd-table-wrap { overflow-x: auto; }
.cd-table { width: 100%; border-collapse: collapse; }
.cd-table th { text-align: left; font-size: 12px; font-weight: 700; color: var(--cd-muted); padding: 14px 24px; border-bottom: 1px solid #f0ebf5; text-transform: uppercase; letter-spacing: .02em; }
.cd-table td { padding: 14px 24px; border-bottom: 1px solid #f4f0f9; font-size: 14px; }
.cd-table tbody tr:last-child td { border-bottom: none; }
.cd-table .cd-num { text-align: right; font-variant-numeric: tabular-nums; }
.cd-table__title a { color: var(--cd-ink); text-decoration: none; font-weight: 600; }
.cd-table__title a:hover { color: var(--cd-coral); }

/* ---- Status badges ------------------------------------------------------- */
.cd-status { display: inline-block; padding: 3px 11px; border-radius: 999px; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.cd-status--active { background: #e3f1e9; color: var(--cd-green); }
.cd-status--soon { background: #fbeecd; color: #9a6a14; }
.cd-status--inactive { background: #eee9f3; color: var(--cd-ink2); }
.cd-status--pending { background: #fbeecd; color: #9a6a14; }
.cd-status--app-ny { background: #fbe7de; color: #c25a35; }
.cd-status--app-set { background: #e6e9f6; color: #5b4b86; }
.cd-status--app-samtale { background: #e3f1e9; color: var(--cd-green); }
.cd-status--app-afvist { background: #eee9f3; color: var(--cd-ink2); }

/* ---- Job list ------------------------------------------------------------ */
.cd-joblist { display: flex; flex-direction: column; gap: 12px; }
.cd-jobrow {
	display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
	background: #fff; border: 1px solid var(--cd-line); border-radius: 16px; padding: 18px 22px;
}
.cd-jobrow__main { flex: 1; min-width: 220px; }
.cd-jobrow__title { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 16px; }
.cd-jobrow__title a { color: var(--cd-ink); text-decoration: none; }
.cd-jobrow__title a:hover { color: var(--cd-coral); }
.cd-jobrow__meta { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 6px; font-size: 13px; color: var(--cd-muted); }
.cd-jobrow__meta span { display: inline-flex; align-items: center; gap: 5px; }
.cd-jobrow__actions { display: flex; gap: 6px; flex-wrap: wrap; }
.cd-act {
	display: inline-flex; align-items: center; gap: 5px; padding: 7px 11px; border-radius: 9px;
	font-size: 13px; font-weight: 600; color: var(--cd-ink2); text-decoration: none;
	border: 1px solid var(--cd-line2); background: #fff; cursor: pointer;
}
.cd-act:hover { border-color: var(--cd-ink); color: var(--cd-ink); }
.cd-act--danger:hover { border-color: #dc2626; color: #dc2626; }
.cd-act--muted { color: #9a6a14; border-color: #fbeecd; background: #fffaf0; cursor: default; }

/* ---- Filters ------------------------------------------------------------- */
.cd-filters { margin-bottom: 18px; }
.cd-filters__form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cd-filters__date { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--cd-muted); }
.cd-filters__new { margin-left: auto; }

/* ---- Pills --------------------------------------------------------------- */
.cd-pills { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.cd-pill { padding: 8px 15px; border: 1px solid var(--cd-line2); border-radius: 999px; font-size: 13.5px; font-weight: 600; color: var(--cd-ink2); text-decoration: none; background: #fff; }
.cd-pill:hover { border-color: var(--cd-ink); }
.cd-pill.is-active { background: var(--cd-ink); color: #fff; border-color: var(--cd-ink); }

/* ---- Applications -------------------------------------------------------- */
.cd-applist { display: flex; flex-direction: column; gap: 12px; }
.cd-app-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; background: #fff; border: 1px solid var(--cd-line); border-radius: 16px; padding: 16px 20px; }
.cd-app-avatar { width: 48px; height: 48px; border-radius: 14px; background: #e9e3f5; display: flex; align-items: center; justify-content: center; font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 16px; flex-shrink: 0; overflow: hidden; }
.cd-app-avatar--img { background: none; }
.cd-app-avatar--img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cd-app-avatar--blank { color: var(--cd-muted); }
.cd-app-main { flex: 1; min-width: 200px; }
.cd-app-name { font-weight: 700; font-size: 15.5px; }
.cd-app-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 3px; font-size: 13px; color: var(--cd-muted); }
.cd-app-meta strong { color: var(--cd-ink2); }
.cd-app-msg { margin-top: 7px; font-size: 13px; color: var(--cd-ink2); background: var(--cd-fill); padding: 8px 12px; border-radius: 8px; }
.cd-dot { width: 4px; height: 4px; border-radius: 50%; background: #d8d1e3; }
.cd-app-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cd-app-status-menu { display: flex; gap: 4px; flex-wrap: wrap; }
.cd-status-set { font-size: 11.5px; padding: 4px 9px; border-radius: 7px; background: var(--cd-fill); text-decoration: none; border: 1px solid var(--cd-line2); }
/* Status-knapper er <a>; .cd-app-prefiks så temaets link-farve ikke overskriver
   teksten (ellers usynlig ved hover – samme workaround som .cd-btn). */
.cd-app .cd-status-set,
.cd-app .cd-status-set:link,
.cd-app .cd-status-set:visited { color: var(--cd-ink2); }
.cd-app .cd-status-set:hover,
.cd-app .cd-status-set:focus { background: var(--cd-ink); border-color: var(--cd-ink); color: #fff; }

/* ---- Buttons ------------------------------------------------------------- */
.cd-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 7px;
	padding: 10px 16px; border-radius: 10px; border: 1px solid transparent;
	font-family: inherit; font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none;
	transition: background .15s, color .15s, border-color .15s;
}
.cd-btn--primary { background: var(--cd-ink); color: #fff; }
.cd-btn--primary:hover { background: var(--cd-coral); }
.cd-btn--ghost { background: #fff; color: var(--cd-ink2); border-color: var(--cd-line2); }
.cd-btn--ghost:hover { border-color: var(--cd-ink); color: var(--cd-ink); }
/* Knapper er ofte <a>; sæt tekstfarven med .cd-app-prefiks så temaets
   link-farve ikke overskriver og gør teksten usynlig (kun synlig ved hover). */
.cd-app .cd-btn--primary,
.cd-app .cd-btn--primary:link,
.cd-app .cd-btn--primary:visited { color: #fff; }
.cd-app .cd-btn--primary:hover { color: #fff; }
.cd-app .cd-btn--ghost,
.cd-app .cd-btn--ghost:link,
.cd-app .cd-btn--ghost:visited { color: var(--cd-ink2); }
.cd-btn--lg { padding: 13px 26px; font-size: 15px; }
.cd-btn--sm { padding: 7px 13px; font-size: 13px; }
.cd-link { color: var(--cd-coral); font-weight: 600; font-size: 14px; text-decoration: none; }
.cd-link:hover { text-decoration: underline; }
.cd-link-sm { display: inline-block; margin-top: 7px; font-size: 13px; color: var(--cd-coral); }

/* ---- Forms --------------------------------------------------------------- */
.cd-jobform { max-width: 760px; }
.cd-field { margin-bottom: 18px; }
.cd-field > label { display: block; margin-bottom: 7px; font-weight: 600; font-size: 14px; color: var(--cd-ink); }
.cd-input, .cd-select,
.cd-jobform input[type="text"], .cd-jobform input[type="email"], .cd-jobform input[type="url"],
.cd-jobform input[type="number"], .cd-jobform input[type="password"], .cd-jobform input[type="date"],
.cd-jobform select, .cd-jobform textarea {
	width: 100%; padding: 11px 14px; border: 1.5px solid var(--cd-line2); border-radius: 10px;
	font-family: inherit; font-size: 15px; color: var(--cd-ink); background: #fff;
}
.cd-select, .cd-input { width: auto; }
.cd-jobform input:focus, .cd-jobform select:focus, .cd-jobform textarea:focus,
.cd-input:focus, .cd-select:focus { outline: none; border-color: var(--cd-ink); box-shadow: 0 0 0 3px rgba(56, 48, 81, .12); }
.cd-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cd-checkgrid { display: flex; flex-direction: column; gap: 8px; }
.cd-checkgrid--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cd-check { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.cd-check input { width: 17px; height: 17px; accent-color: var(--cd-ink); }
.cd-image-preview { display: block; max-width: 150px; height: auto; margin-bottom: 10px; border-radius: 8px; }
.cd-field-error { color: #dc2626; font-size: 13px; margin: 6px 0 0; }

/* ==========================================================================
   Moderne job-formular (opret/rediger): sektioner, chips, fselect, dropzone
   ========================================================================== */
.cd-jobform2 { max-width: 820px; }
.cd-fsec { background: #fff; border: 1px solid var(--cd-line); border-radius: 16px; padding: 22px 24px; margin-bottom: 16px; }
.cd-fsec__head { margin-bottom: 16px; }
.cd-fsec__title { font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: 16px; margin: 0; }
.cd-fsec__desc { font-size: 12.5px; color: var(--cd-muted); margin: 3px 0 0; }
.cd-fsec__body { display: flex; flex-direction: column; gap: 16px; }

.cd-field2 { display: flex; flex-direction: column; min-width: 0; }
.cd-field2 > label { font-weight: 600; font-size: 13.5px; margin-bottom: 7px; }
.cd-req { color: var(--cd-coral); }
.cd-input2 { width: 100%; padding: 11px 13px; border: 1.5px solid var(--cd-line2); border-radius: 10px; font-family: inherit; font-size: 15px; color: var(--cd-ink); background: #fff; }
.cd-input2:focus { outline: none; border-color: var(--cd-ink); box-shadow: 0 0 0 3px rgba(56, 48, 81, .12); }
.cd-input2--error { border-color: #dc2626; }
.cd-fielderr { color: #dc2626; font-size: 12.5px; margin-top: 6px; }
.cd-fielderr:empty { display: none; }
.cd-help { font-size: 12.5px; color: var(--cd-muted); margin: 6px 0 0; }

/* Chips (klikbare pills) */
.cd-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cd-chip { position: relative; display: inline-flex; cursor: pointer; user-select: none; }
.cd-chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.cd-chip span { display: inline-block; padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--cd-line2); background: #fff; color: var(--cd-ink2); font-size: 13.5px; font-weight: 600; transition: background .12s, border-color .12s, color .12s; }
.cd-chip:hover span { border-color: var(--cd-ink); }
.cd-chip.is-on span { background: var(--cd-ink); border-color: var(--cd-ink); color: #fff; }
.cd-chip input:focus-visible + span { box-shadow: 0 0 0 3px rgba(56, 48, 81, .2); }

/* Søgbar dropdown (fselect) */
.cd-fselect2 { position: relative; }
.cd-fselect2__panel { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 50; background: #fff; border: 1px solid var(--cd-line2); border-radius: 10px; box-shadow: 0 10px 30px rgba(40, 33, 60, .12); max-height: 240px; overflow-y: auto; padding: 5px; }
.cd-fselect2__panel[hidden] { display: none; }
.cd-fselect2__opt, .cd-fselect2__new { padding: 9px 11px; border-radius: 7px; font-size: 14px; cursor: pointer; color: var(--cd-ink); }
.cd-fselect2__opt[hidden] { display: none; }
.cd-fselect2__opt:hover, .cd-fselect2__new:hover { background: var(--cd-fill); }
.cd-fselect2__new { color: var(--cd-coral); font-weight: 600; }

/* Multi-select med tokens (By/Kommune) */
.cd-mselect { position: relative; }
.cd-mselect__tokens { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.cd-mselect__tokens:empty { display: none; }
.cd-token { display: inline-flex; align-items: center; gap: 6px; padding: 5px 6px 5px 12px; border-radius: 999px; background: var(--cd-ink); color: #fff; font-size: 13px; font-weight: 600; }
.cd-token__x { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; padding: 0; border: none; border-radius: 50%; background: rgba(255, 255, 255, .2); color: #fff; font-size: 15px; line-height: 1; cursor: pointer; }
.cd-token__x:hover { background: rgba(255, 255, 255, .38); }
.cd-mselect__field { position: relative; }
.cd-mselect__panel { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 50; background: #fff; border: 1px solid var(--cd-line2); border-radius: 10px; box-shadow: 0 10px 30px rgba(40, 33, 60, .12); max-height: 240px; overflow-y: auto; padding: 5px; }
.cd-mselect__panel[hidden] { display: none; }
.cd-mselect__opt { padding: 9px 11px; border-radius: 7px; font-size: 14px; cursor: pointer; color: var(--cd-ink); }
.cd-mselect__opt[hidden] { display: none; }
.cd-mselect__opt:hover { background: var(--cd-fill); }

/* Auto-job badge (administrerede ansøgninger) */
.cd-badge-auto { display: inline-block; padding: 2px 8px; border-radius: 999px; background: #ede7f6; color: #5b4b86; font-size: 11px; font-weight: 700; }

/* ==========================================================================
   CV / jobsøgende
   ========================================================================== */
.cd-cv-manage { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.cd-cv-manage__status { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.cd-cv-manage__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cd-alert--warn { background: #fff8ec; border: 1px solid #f6dca0; color: #8a6310; }
.cd-alert--warn strong { display: block; margin-bottom: 2px; }

.cd-cv-preview__head { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 18px; }
.cd-cv-preview__img { width: 90px; height: 90px; border-radius: 14px; object-fit: cover; flex-shrink: 0; }
.cd-cv-preview__about { font-size: 14px; color: var(--cd-ink2); line-height: 1.5; margin-top: 6px; }
.cd-cv-preview__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px; }
.cd-cv-preview__row { display: flex; gap: 8px; font-size: 14px; padding: 7px 0; border-bottom: 1px solid #f4f0f9; }
.cd-cv-preview__label { color: var(--cd-muted); min-width: 130px; font-weight: 600; }
@media (max-width: 700px) { .cd-cv-preview__grid { grid-template-columns: 1fr; } }

/* Sticky gem-bjælke */
.cd-formbar { position: sticky; bottom: 0; z-index: 30; display: flex; justify-content: flex-end; gap: 10px; padding: 14px 0; background: #fff; border-top: 1px solid var(--cd-line); }

/* Drag-and-drop logo */
.cd-dropzone { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; border: 2px dashed var(--cd-line2); border-radius: 14px; padding: 24px; text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.cd-dropzone:hover { border-color: var(--cd-ink); }
.cd-dropzone.is-drag { border-color: var(--cd-coral); background: var(--cd-fill); }
.cd-dropzone__input { position: absolute; inset: 0; opacity: 0; width: 0; height: 0; }
.cd-dropzone__preview { max-width: 140px; max-height: 140px; border-radius: 10px; display: block; }
.cd-dropzone__preview[hidden] { display: none; }
.cd-dropzone__text { font-size: 14px; color: var(--cd-ink2); }
.cd-dropzone__hint { font-size: 12.5px; color: var(--cd-muted); }
.cd-dropzone__remove { border: 1px solid var(--cd-line2); background: #fff; color: var(--cd-ink2); border-radius: 8px; padding: 6px 12px; font-size: 13px; font-weight: 600; cursor: pointer; }
.cd-dropzone__remove[hidden] { display: none; }
.cd-dropzone__remove:hover { border-color: #dc2626; color: #dc2626; }

/* ---- Alerts -------------------------------------------------------------- */
.cd-alert { padding: 12px 16px; border-radius: 10px; font-size: 14px; margin-bottom: 18px; }
.cd-alert--error { background: #fef2f2; border: 1px solid #fecaca; color: #dc2626; }
.cd-alert--success { background: #eafaf1; border: 1px solid #bfe8d0; color: var(--cd-green); }

/* ---- Empty / pagination -------------------------------------------------- */
.cd-empty { text-align: center; padding: 44px 24px; color: var(--cd-muted); }
.cd-empty p { margin-bottom: 14px; }
.cd-pagination { display: flex; gap: 6px; justify-content: center; margin-top: 22px; }
.cd-pagination a, .cd-pagination__current { padding: 8px 13px; border-radius: 9px; font-size: 14px; font-weight: 600; text-decoration: none; }
.cd-pagination a { color: var(--cd-ink2); border: 1px solid var(--cd-line2); }
.cd-pagination a:hover { border-color: var(--cd-ink); }
.cd-pagination__current { background: var(--cd-ink); color: #fff; }

.cd-hide-sm { display: inline; }

/* ==========================================================================
   "Ansøg direkte" knap + modal (single job)
   ========================================================================== */
.cd-apply { width: 100%; }
.cd-apply-btn {
	display: flex; align-items: center; justify-content: center; gap: 9px;
	width: 100%; padding: 15px 22px;
	background: var(--cd-ink); color: #fff; border: none; border-radius: 10px;
	font-family: 'Hanken Grotesk', sans-serif; font-size: 16px; font-weight: 600;
	cursor: pointer; transition: background .15s, transform .1s; text-decoration: none;
}
.cd-apply-btn:hover { background: #2a243d; }
.cd-apply-btn:active { transform: scale(.985); }
.cd-apply-btn--submit { max-width: none; margin-top: 6px; }
.cd-apply-done {
	display: flex; align-items: center; gap: 8px; width: 100%;
	justify-content: center; padding: 15px 22px; border-radius: 10px;
	background: #e3f1e9; color: var(--cd-green); font-weight: 600; font-size: 15px;
}
.cd-apply-done--expired { background: var(--cd-fill); color: var(--cd-muted); }

.cd-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 18px; }
.cd-modal[hidden] { display: none; }
.cd-modal__overlay { position: absolute; inset: 0; background: rgba(40, 33, 60, .55); }
.cd-modal__box {
	position: relative; background: #fff; border-radius: 16px; padding: 30px 28px;
	width: 100%; max-width: 440px; max-height: 90vh; overflow-y: auto;
	box-shadow: 0 18px 50px rgba(40, 33, 60, .25);
	font-family: 'Hanken Grotesk', sans-serif; color: var(--cd-ink);
}
.cd-modal__box--wide { max-width: 680px; }
/* CV-preview i modal: kortet leverer selv padding/ramme, så undgå dobbelt. */
.cd-cv-modal .cd-modal__box { padding: 0; }
.cd-cv-modal .cd-card { border: none; box-shadow: none; }
.cd-cv-modal .cd-modal__close { z-index: 1; background: rgba(255, 255, 255, .85); border-radius: 50%; width: 30px; height: 30px; }
.cd-modal__close { position: absolute; top: 12px; right: 16px; background: none; border: none; font-size: 26px; line-height: 1; color: var(--cd-muted); cursor: pointer; }
.cd-modal__title { font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: 20px; margin: 0 0 6px; }
.cd-modal__intro { font-size: 14px; color: var(--cd-ink2); margin: 0 0 18px; }
.cd-apply-form label { display: block; margin-bottom: 7px; font-weight: 600; font-size: 14px; }
.cd-apply-form textarea {
	width: 100%; padding: 12px 14px; border: 1.5px solid var(--cd-line2); border-radius: 10px;
	font-family: inherit; font-size: 15px; box-sizing: border-box; margin-bottom: 8px; resize: vertical;
}
.cd-apply-form textarea:focus { outline: none; border-color: var(--cd-ink); box-shadow: 0 0 0 3px rgba(56, 48, 81, .12); }

/* ==========================================================================
   Responsivt
   ========================================================================== */
@media (max-width: 1080px) {
	.cd-cards { grid-template-columns: repeat(2, 1fr); }
	.cd-grid-2-1 { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
	.cd-sidebar {
		position: fixed; top: 0; left: 0; bottom: 0; height: 100%; min-height: 100%;
		z-index: 1000; transform: translateX(-100%); transition: transform .25s ease;
	}
	.cd-app.cd-sidebar-open .cd-sidebar { transform: translateX(0); }
	.cd-app.cd-sidebar-open::after { content: ''; position: fixed; inset: 0; background: rgba(0, 0, 0, .4); z-index: 999; }
	.cd-sidebar__close { display: block; }
	.cd-topbar__menu { display: inline-flex; }
	.cd-main { padding: 18px 16px 36px; }
	.cd-topbar { padding: 0 16px; }
	.cd-grid2 { grid-template-columns: 1fr; }
	.cd-checkgrid--2 { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
	.cd-cards { grid-template-columns: 1fr; }
	.cd-hide-sm { display: none; }
	.cd-filters__new { margin-left: 0; width: 100%; }
}
