/**
 * IHE Övningar och Games — frontendstilar.
 *
 * Alla regler ligger under .ihe-ovningar så att de inte krockar med temat.
 */

.ihe-ovningar {
	--ihe-ink: #41374B;
	--ihe-muted: #6E6478;
	--ihe-line: #E1DCE6;
	--ihe-paper: #FAF8FB;
	--ihe-card: #fff;
	--ihe-accent: #4F5BA2;
	--ihe-accent-soft: #E9EAF4;
	--ihe-warn: #8A6420;
	--ihe-warn-bg: #FDF4E4;

	background: var(--ihe-paper);
	color: var(--ihe-ink);
	font-family: Calibri, "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

.ihe-ovningar *,
.ihe-ovningar *::before,
.ihe-ovningar *::after {
	box-sizing: border-box;
}

.ihe-ovningar .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---- sidhuvud ---- */
.ihe-ovningar .ihe-huvud {
	background: var(--ihe-card);
	border-bottom: 1px solid var(--ihe-line);
	padding: 22px 20px 18px;
	position: sticky;
	top: 0;
	z-index: 10;
}

.ihe-ovningar .brand {
	display: flex;
	align-items: center;
	gap: 14px;
}

.ihe-ovningar .brand img {
	height: 52px;
	width: auto;
	max-width: 100%;
	display: block;
}

.ihe-ovningar .brand .rubrik {
	border-left: 1px solid var(--ihe-line);
	padding-left: 14px;
}

/* Raden med bara utfällningsknappen, när sidhuvudet är avstängt. */
.ihe-ovningar .brand-bara-sok {
	justify-content: flex-end;
}

.ihe-ovningar h1,
.ihe-ovningar .ihe-rubrik {
	font-size: 21px;
	margin: 0 0 2px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--ihe-ink);
	line-height: 1.3;
}

.ihe-ovningar .brand .tagline {
	margin: 0;
}

.ihe-ovningar .tagline {
	color: var(--ihe-muted);
	font-size: 14px;
	margin: 0 0 16px;
}

/* ---- knappen som fäller ut sökpanelen ---- */
.ihe-ovningar .oppna {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 9px;
	background: var(--ihe-card);
	border: 1px solid var(--ihe-line);
	border-radius: 999px;
	padding: 9px 16px;
	font-family: inherit;
	font-size: 14px;
	color: var(--ihe-accent);
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.12s, background 0.12s;
}

.ihe-ovningar .oppna:hover {
	border-color: var(--ihe-accent);
	background: var(--ihe-accent-soft);
}

.ihe-ovningar .pil {
	display: inline-block;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid currentColor;
	transition: transform 0.18s;
}

.ihe-ovningar .oppna[aria-expanded="true"] .pil {
	transform: rotate(180deg);
}

.ihe-ovningar .oppna .antal {
	background: var(--ihe-accent);
	color: #fff;
	border-radius: 999px;
	padding: 1px 8px;
	font-size: 12px;
	font-weight: 600;
}

/* ---- urvalsrad när panelen är hopfälld ---- */
.ihe-ovningar .urval {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	background: var(--ihe-accent-soft);
	color: var(--ihe-accent);
	border-radius: 8px;
	padding: 9px 14px;
	font-size: 13.5px;
	margin-bottom: 12px;
}

.ihe-ovningar .urval .rensa {
	color: var(--ihe-accent);
}

/* ---- sök och filter ---- */
.ihe-ovningar .panel {
	margin-top: 16px;
}

.ihe-ovningar .panel[hidden] {
	display: none;
}

.ihe-ovningar .ihe-sok {
	width: 100%;
	padding: 12px 14px;
	font-size: 16px;
	font-family: inherit;
	border: 1px solid var(--ihe-line);
	border-radius: 8px;
	background: var(--ihe-paper);
	color: var(--ihe-ink);
}

.ihe-ovningar .ihe-sok:focus {
	outline: 2px solid var(--ihe-accent-soft);
	border-color: var(--ihe-accent);
}

.ihe-ovningar .filterrad {
	margin-top: 12px;
}

.ihe-ovningar .filterrad h2 {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ihe-muted);
	margin: 0 0 6px;
	font-weight: 600;
}

.ihe-ovningar .chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ihe-ovningar .chip {
	border: 1px solid var(--ihe-line);
	background: var(--ihe-card);
	color: var(--ihe-ink);
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 13.5px;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.12s, border-color 0.12s;
}

.ihe-ovningar .chip:hover {
	border-color: var(--ihe-accent);
}

.ihe-ovningar .chip[aria-pressed="true"] {
	background: var(--ihe-accent);
	color: #fff;
	border-color: var(--ihe-accent);
}

.ihe-ovningar .radrad {
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
	margin-top: 12px;
}

.ihe-ovningar .radrad > div {
	flex: 1 1 260px;
}

.ihe-ovningar .status {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid var(--ihe-line);
	font-size: 13.5px;
	color: var(--ihe-muted);
}

.ihe-ovningar .rensa {
	background: none;
	border: none;
	color: var(--ihe-accent);
	cursor: pointer;
	font-size: 13.5px;
	font-family: inherit;
	text-decoration: underline;
	padding: 0;
}

/* ---- innehållsbredd, som i de fristående sidorna ---- */
.ihe-ovningar .ihe-huvud > .brand,
.ihe-ovningar .ihe-huvud > .panel,
.ihe-ovningar .ihe-huvud > .planhopp,
.ihe-ovningar .ihe-lista,
.ihe-ovningar .plan,
.ihe-ovningar .ihe-sidfot {
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
}

/* ---- listan ---- */
.ihe-ovningar .ihe-lista,
.ihe-ovningar .plan {
	padding: 22px 20px 60px;
}

.ihe-ovningar .kort {
	position: relative;
	background: var(--ihe-card);
	border: 1px solid var(--ihe-line);
	border-radius: 10px;
	margin-bottom: 10px;
	overflow: hidden;
}

.ihe-ovningar .kopf {
	width: 100%;
	text-align: left;
	background: none;
	border: none;
	cursor: pointer;
	padding: 16px 18px;
	font-family: inherit;
	font-size: 16px;
	color: var(--ihe-ink);
	display: block;
}

.ihe-ovningar .kopf:hover {
	background: #FCFBFD;
}

.ihe-ovningar .hornet {
	position: absolute;
	top: 13px;
	right: 15px;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 9px;
}

.ihe-ovningar .gameikon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--ihe-accent-soft);
	color: var(--ihe-accent);
	box-shadow: 0 0 0 1px rgba(79, 91, 162, 0.13);
}

.ihe-ovningar .ovid {
	font-size: 11.5px;
	color: #B0A9B8;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.ihe-ovningar .kort .titel,
.ihe-ovningar .kort .meta {
	padding-right: 62px;
}

.ihe-ovningar .kort:has(.gameikon) .titel,
.ihe-ovningar .kort:has(.gameikon) .meta,
.ihe-typ-games .kort .titel,
.ihe-typ-games .kort .meta {
	padding-right: 100px;
}

.ihe-ovningar .titel {
	font-weight: 600;
	font-size: 17px;
	margin-bottom: 3px;
}

.ihe-ovningar .meta {
	color: var(--ihe-muted);
	font-size: 13.5px;
}

.ihe-ovningar .syfte {
	margin-top: 7px;
	font-size: 14.5px;
	color: #584E63;
}

.ihe-ovningar .taggar {
	margin-top: 9px;
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.ihe-ovningar .tagg {
	background: var(--ihe-accent-soft);
	color: var(--ihe-accent);
	font-size: 12px;
	padding: 3px 9px;
	border-radius: 4px;
}

.ihe-ovningar .tagg.flagga {
	background: var(--ihe-warn-bg);
	color: var(--ihe-warn);
}

.ihe-ovningar .kropp {
	display: none;
	padding: 4px 18px 20px;
	border-top: 1px solid var(--ihe-line);
	margin-top: 2px;
}

.ihe-ovningar .kort.oppen .kropp {
	display: block;
}

.ihe-ovningar .kropp h3 {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ihe-muted);
	margin: 16px 0 4px;
	font-weight: 600;
}

.ihe-ovningar .kropp p {
	margin: 0;
	font-size: 15px;
}

.ihe-ovningar .varningsruta {
	background: var(--ihe-warn-bg);
	border-left: 3px solid var(--ihe-warn);
	padding: 11px 14px;
	margin-top: 16px;
	border-radius: 0 6px 6px 0;
}

.ihe-ovningar .varningsruta h3 {
	color: var(--ihe-warn);
	margin-top: 0;
}

.ihe-ovningar .fokuslista {
	font-size: 14px;
	color: #584E63;
	margin: 0;
	padding-left: 18px;
}

.ihe-ovningar .fokuslista li {
	margin-bottom: 2px;
}

.ihe-ovningar .tomt {
	text-align: center;
	color: var(--ihe-muted);
	padding: 50px 20px;
}

.ihe-ovningar .notis {
	background: var(--ihe-warn-bg);
	border: 1px solid #EFDFC2;
	color: var(--ihe-warn);
	padding: 11px 14px;
	border-radius: 8px;
	font-size: 13.5px;
	margin-bottom: 16px;
}

/* ---- publikvärde ---- */
.ihe-ovningar .pvmarke {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	font-size: 13.5px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.ihe-ovningar .pv5 {
	background: var(--ihe-accent);
	color: #fff;
}

.ihe-ovningar .pv4 {
	background: var(--ihe-accent-soft);
	color: var(--ihe-accent);
	box-shadow: 0 0 0 1px rgba(79, 91, 162, 0.13);
}

.ihe-ovningar .pv3,
.ihe-ovningar .pv2,
.ihe-ovningar .pv1 {
	background: var(--ihe-card);
	color: var(--ihe-muted);
	box-shadow: 0 0 0 1px var(--ihe-line);
}

/* ---- sidfot ---- */
.ihe-ovningar .ihe-sidfot {
	padding: 16px 20px 44px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	color: var(--ihe-muted);
	font-size: 13px;
	border-top: 1px solid var(--ihe-line);
}

/* ---- växlare mellan sidorna ---- */
.ihe-ovningar .vaxel {
	position: relative;
}

.ihe-ovningar .vaxelknapp {
	display: flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: none;
	padding: 0;
	margin: 0 0 2px;
	font-family: inherit;
	color: inherit;
	cursor: pointer;
	border-radius: 6px;
}

.ihe-ovningar .vaxelknapp h1 {
	margin: 0;
}

.ihe-ovningar .vaxelknapp:hover h1 {
	color: var(--ihe-accent);
}

.ihe-ovningar .vaxelknapp:focus-visible {
	outline: 2px solid var(--ihe-accent-soft);
	outline-offset: 3px;
}

.ihe-ovningar .vaxelknapp .pil {
	border-top-color: var(--ihe-muted);
}

.ihe-ovningar .vaxelknapp:hover .pil {
	border-top-color: var(--ihe-accent);
}

.ihe-ovningar .vaxelknapp[aria-expanded="true"] .pil {
	transform: rotate(180deg);
}

.ihe-ovningar .vaxelmeny {
	position: absolute;
	top: calc(100% + 6px);
	left: -10px;
	z-index: 30;
	background: var(--ihe-card);
	border: 1px solid var(--ihe-line);
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(65, 55, 75, 0.13);
	padding: 5px;
	min-width: 172px;
}

.ihe-ovningar .vaxelmeny[hidden] {
	display: none;
}

.ihe-ovningar .vaxelmeny a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 9px 12px;
	border-radius: 7px;
	text-decoration: none;
	color: var(--ihe-ink);
	font-size: 15px;
	white-space: nowrap;
}

.ihe-ovningar .vaxelmeny a:hover {
	background: var(--ihe-accent-soft);
	color: var(--ihe-accent);
}

.ihe-ovningar .vaxelmeny a[aria-current="page"] {
	color: var(--ihe-accent);
	font-weight: 600;
}

.ihe-ovningar .vaxelmeny a[aria-current="page"]::after {
	content: "✓";
	font-size: 13px;
}

/* ---- studieplan ---- */
.ihe-ovningar .planhopp {
	margin-top: 14px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ihe-ovningar .planhopp a {
	border: 1px solid var(--ihe-line);
	background: var(--ihe-card);
	color: var(--ihe-ink);
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 13.5px;
	text-decoration: none;
	transition: background 0.12s, border-color 0.12s;
}

.ihe-ovningar .planhopp a:hover {
	border-color: var(--ihe-accent);
	background: var(--ihe-accent-soft);
	color: var(--ihe-accent);
}

.ihe-ovningar .plan {
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

@media (min-width: 1021px) {
	.ihe-ovningar .plan {
		/* Samma vänsterkant som listorna: 980-kolumnen centreras, texten ligger till vänster i den. */
		margin-left: calc(50% - 490px);
		margin-right: 0;
	}
}

.ihe-ovningar .plan h2 {
	font-size: 19px;
	margin: 34px 0 10px;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.ihe-ovningar .plan h3 {
	font-size: 15.5px;
	margin: 24px 0 6px;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	color: var(--ihe-ink);
}

.ihe-ovningar .plan p {
	margin: 0 0 12px;
	font-size: 15.5px;
}

.ihe-ovningar .plan ul {
	margin: 0 0 14px;
	padding-left: 20px;
	font-size: 15.5px;
}

.ihe-ovningar .plan li {
	margin-bottom: 5px;
}

.ihe-ovningar .plan .ledtext {
	color: var(--ihe-muted);
	font-size: 14.5px;
}

.ihe-ovningar .planhuvud {
	border-bottom: 1px solid var(--ihe-line);
	padding-bottom: 20px;
	margin-bottom: 6px;
}

.ihe-ovningar .planhuvud .stor {
	font-size: 24px;
	font-weight: 600;
	letter-spacing: -0.015em;
	margin: 0 0 4px;
}

.ihe-ovningar .planhuvud .fakta {
	display: inline-block;
	background: var(--ihe-accent-soft);
	color: var(--ihe-accent);
	border-radius: 6px;
	padding: 5px 11px;
	font-size: 13px;
	margin-top: 8px;
}

.ihe-ovningar .ihe-tabellsvep {
	overflow-x: auto;
}

.ihe-ovningar .oversikt {
	width: 100%;
	border-collapse: collapse;
	margin: 6px 0 8px;
	font-size: 14.5px;
}

.ihe-ovningar .oversikt th,
.ihe-ovningar .oversikt td {
	text-align: left;
	padding: 9px 12px 9px 0;
	vertical-align: top;
	border-bottom: 1px solid var(--ihe-line);
}

.ihe-ovningar .oversikt th {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ihe-muted);
	font-weight: 600;
}

.ihe-ovningar .oversikt td:first-child {
	white-space: nowrap;
	font-weight: 600;
	color: var(--ihe-accent);
}

.ihe-ovningar .termin {
	margin-top: 44px;
	scroll-margin-top: 118px;
}

.ihe-ovningar .terminhuvud {
	background: var(--ihe-card);
	border: 1px solid var(--ihe-line);
	border-radius: 10px;
	padding: 18px 20px;
	margin-bottom: 14px;
}

.ihe-ovningar .terminhuvud .etikett {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ihe-accent);
	font-weight: 600;
}

.ihe-ovningar .terminhuvud h2 {
	margin: 2px 0 8px;
	font-size: 20px;
}

.ihe-ovningar .terminhuvud .ingress {
	color: #584E63;
	font-size: 15px;
	margin: 0 0 10px;
}

.ihe-ovningar .terminhuvud .helhet {
	border-left: 3px solid var(--ihe-accent-soft);
	padding-left: 12px;
	margin: 0;
	font-size: 15px;
	color: var(--ihe-ink);
}

.ihe-ovningar .lektion {
	position: relative;
	background: var(--ihe-card);
	border: 1px solid var(--ihe-line);
	border-radius: 10px;
	padding: 15px 18px;
	margin-bottom: 9px;
}

.ihe-ovningar .lektion .kod {
	position: absolute;
	top: 15px;
	right: 16px;
	font-size: 11.5px;
	color: #B0A9B8;
	letter-spacing: 0.04em;
	font-variant-numeric: tabular-nums;
}

.ihe-ovningar .lektion .namn {
	font-weight: 600;
	font-size: 16.5px;
	padding-right: 56px;
}

.ihe-ovningar .lektion .fokus {
	color: var(--ihe-muted);
	font-size: 13.5px;
	margin-top: 2px;
}

.ihe-ovningar .lektion dl {
	margin: 11px 0 0;
}

.ihe-ovningar .lektion dt {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ihe-muted);
	font-weight: 600;
	margin-top: 10px;
}

.ihe-ovningar .lektion dd {
	margin: 2px 0 0;
	font-size: 15px;
}

.ihe-ovningar .lektion dd.medsig {
	color: var(--ihe-accent);
}

/* ---- responsivt ---- */
@media (max-width: 640px) {
	.ihe-ovningar .brand {
		flex-wrap: wrap;
		gap: 10px;
		row-gap: 12px;
	}

	.ihe-ovningar .brand img {
		height: 40px;
	}

	.ihe-ovningar .brand .rubrik {
		padding-left: 10px;
	}

	.ihe-ovningar .brand .tagline {
		display: none;
	}

	.ihe-ovningar .oppna {
		padding: 8px 14px;
	}
}

@media (max-width: 600px) {
	.ihe-ovningar .ihe-huvud {
		padding: 16px 14px 14px;
	}

	.ihe-ovningar .ihe-lista,
	.ihe-ovningar .plan {
		padding: 16px 14px 50px;
	}

	.ihe-ovningar h1,
	.ihe-ovningar .ihe-rubrik {
		font-size: 19px;
	}

	.ihe-ovningar .ihe-sidfot {
		padding: 14px 14px 40px;
	}
}

@media (max-width: 380px) {
	.ihe-ovningar .oppna {
		margin-left: 0;
		width: 100%;
		justify-content: center;
	}
}
