.echart-qcm-evolution {
	min-height: 12.5rem;
}

.upmed-bgcolor-parent {
	background-color: inherit;
}

@media (min-width: 576px) {
	/* sm size: 576px */
	.upmed-osm-border {
		border-right: 1px solid;
	}

	.upmed-osm-ps {
		padding-left: 1rem;
	}
}

.upmed-sm-w75 {
	width: 75%;
}

@media (max-width: 576px) {
	/* sm size: 576px */
	.upmed-usm-pb-4 {
		padding-bottom: 1.8rem;
	}

	.upmed-sm-w75 {
		width: 100%;
	}
}

.upmed-smooth-appear {
	opacity: 0;
	-webkit-transition: opacity 500ms ease-in-out;
	-moz-transition: opacity 500ms ease-in-out;
	-ms-transition: opacity 500ms ease-in-out;
	-o-transition: opacity 500ms ease-in-out;
	transition: opacity 500ms ease-in-out;
}

	.upmed-smooth-appear.upmed-fadein {
		opacity: 1;
	}

.card {
	box-shadow: none;
	border: 1px solid #dfe2eb;
}

.dark .card {
	box-shadow: none;
	border: 1px solid rgba(55, 62, 83, 0.78);
}

.navbar-top {
	min-height: 0px !important;
}

.navbar-toggler-humburger-icon:hover, .navbar-toggler-humburger-icon:focus {
	background-color: var(--falcon-1100);
}
/*
@-webkit-keyframes strokeAnimation {
	to {
		stroke-dashoffset: calc(340px - 267px * var(--falcon-circle-progress-bar) / 100);
	}
}

@keyframes strokeAnimation {
	to {
		stroke-dashoffset: calc(340px - 267px * var(--falcon-circle-progress-bar) / 100);
	}
}


.progress {
	--falcon-progressbar-width: 100%;
}

.animated-progress-bar {
	width: var(--falcon-progressbar-width);
	-webkit-animation: widthAnimation 1s;
	animation: widthAnimation 1s;
}

@-webkit-keyframes widthAnimation {
	0% {
		width: 0%;
	}

	100% {
		width: var(--falcon-progressbar-width);
	}
}

@keyframes widthAnimation {
	0% {
		width: 0%;
	}

	100% {
		width: var(--falcon-progressbar-width);
	}
}

.circle-progress-svg {
	-webkit-transform: rotate(130deg);
	-ms-transform: rotate(130deg);
	transform: rotate(130deg);
}

[dir=rtl] .circle-progress-svg {
	-webkit-transform: rotate(-130deg);
	-ms-transform: rotate(-130deg);
	transform: rotate(-130deg);
}

.circle-progress-svg .progress-bar-rail {
	stroke-dasharray: 340px;
	stroke-dashoffset: 72;
	stroke: var(--falcon-gray-200);
}

.circle-progress-svg .progress-bar-top {
	stroke-dasharray: 340px;
	stroke-dashoffset: 340;
	-webkit-animation: strokeAnimation 1s ease-in-out forwards;
	animation: strokeAnimation 1s ease-in-out forwards;
}*/

/* Stroke animation shared by circle & line.
   Set the final dashoffset to:
   340 - (340 - min-gap) * progress%
   For circles, min-gap ≈ 72px (keeps the "almost full" arc).
   For lines, we override min-gap to 0px to fill to 100%. */
@-webkit-keyframes strokeAnimation {
  to {
    stroke-dashoffset: calc(340px - (340px - var(--falcon-progress-min-gap, 72px)) * var(--falcon-circle-progress-bar) / 100);
  }
}
@keyframes strokeAnimation {
  to {
    stroke-dashoffset: calc(340px - (340px - var(--falcon-progress-min-gap, 72px)) * var(--falcon-circle-progress-bar) / 100);
  }
}

/* Existing width animation (unchanged) */
.progress {
  --falcon-progressbar-width: 100%;
}
.animated-progress-bar {
  width: var(--falcon-progressbar-width);
  -webkit-animation: widthAnimation 1s;
  animation: widthAnimation 1s;
}
@-webkit-keyframes widthAnimation {
  0% { width: 0%; }
  100% { width: var(--falcon-progressbar-width); }
}
@keyframes widthAnimation {
  0% { width: 0%; }
  100% { width: var(--falcon-progressbar-width); }
}

/* Base SVG container shared by both variants */
.circle-progress-svg {
  /* default "min gap" for circles; the line variant will override to 0 */
  --falcon-progress-min-gap: 72px;
}

/* Circle variant: keep your 130° rotation */
.circle-progress-svg.circle {
  -webkit-transform: rotate(130deg);
  -ms-transform: rotate(130deg);
  transform: rotate(130deg);
}
[dir=rtl] .circle-progress-svg.circle {
  -webkit-transform: rotate(-130deg);
  -ms-transform: rotate(-130deg);
  transform: rotate(-130deg);
}

/* Line variant: no rotation + full fill (min-gap = 0) */
.circle-progress-svg.line {
  --falcon-progress-min-gap: 0px;
  -webkit-transform: none;
  -ms-transform: none;
  transform: none;
}
/* Optional: flip growth direction in RTL for the line */
[dir=rtl] .circle-progress-svg.line {
  -webkit-transform: scaleX(-1);
  -ms-transform: scaleX(-1);
  transform: scaleX(-1);
}

/* Shared stroke styling */
.circle-progress-svg .progress-bar-rail {
  stroke-dasharray: 340px;
  stroke-dashoffset: var(--falcon-progress-min-gap, 72px);
  stroke: var(--falcon-gray-200);
}
.circle-progress-svg .progress-bar-top {
  stroke-dasharray: 340px;
  stroke-dashoffset: 340;
  -webkit-animation: strokeAnimation 1s ease-in-out forwards;
  animation: strokeAnimation 1s ease-in-out forwards;
}

/* Falcon timeline (div.row.timeline): the last step keeps its dot (::after) but drops the dashed
   connector (::before) that would otherwise dangle below it. */
.timeline.upmed-timeline-end::before {
	display: none;
}
/* Question actions: one compact footer, shared by training and review views. */
.upmed-question-body {
    container-type: inline-size;
    padding-bottom: .75rem;
}

.upmed-question-body > [id^="upmedjs-qgroup-"] > .form-check:last-child {
    margin-bottom: 0 !important;
}

.question-actions,
.aichat-feedback {
    --question-action-accent: #2167c5;
    --question-action-favorite: #f5b400;
    --question-vote-positive: #008a56;
    --question-vote-negative: #c43d45;
}

.question-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .25rem .75rem;
    margin-top: .75rem;
    min-width: 0;
}

.dark #aichat-input::placeholder {
    color: #9da9bb;
    opacity: 1;
}

.dark .question-actions,
.dark .aichat-feedback {
    --question-action-accent: #7fb3ff;
    --question-action-favorite: #ffd24d;
    --question-vote-positive: #4bdca4;
    --question-vote-negative: #ff9298;
}

.question-actions-tools,
.question-actions-feedback,
.question-votes,
.question-actions-help {
    display: flex;
    align-items: center;
    gap: .125rem;
}

.question-actions-tools {
    flex: 1;
    flex-wrap: wrap;
    column-gap: .5rem;
    min-width: 0;
}

.question-actions-help {
    margin-left: auto;
    position: relative;
    flex-wrap: wrap;
    gap: .25rem;
}

.question-actions-separated::before {
    position: absolute;
    left: -.25rem;
    content: "";
    width: 1px;
    height: 1rem;
    background: var(--falcon-300);
}

.question-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: .375rem;
    min-width: 2rem;
    min-height: 2rem;
    padding: .375rem;
    border: 0;
    border-radius: .25rem;
    background: transparent;
    color: var(--falcon-700);
    font: inherit;
    font-size: .8125rem;
    line-height: 1.25;
    white-space: nowrap;
    cursor: pointer;
}

.question-action .bi { font-size: 1rem; }
.question-action-help[data-corrected="false"] { opacity: .5; }
.question-action-favorite.text-300 { color: var(--falcon-600) !important; }
.question-action-favorite.text-warning { color: var(--question-action-favorite) !important; }
.question-action-favorite .bi-star-fill,
.question-action-favorite[aria-pressed="true"] .bi-star { display: none; }
.question-action-favorite[aria-pressed="true"] .bi-star-fill { display: inline; }
.question-help-label-short { display: none; }

.question-action:focus-visible,
.question-actions-correction .btn:focus-visible {
    outline: 2px solid var(--falcon-primary);
    outline-offset: 2px;
}

.question-action[data-vote-value="1"]:is(:focus-visible, [aria-pressed="true"]) {
    color: var(--question-vote-positive);
}

.question-action[data-vote-value="-1"]:is(:focus-visible, [aria-pressed="true"]) {
    color: var(--question-vote-negative);
}

.question-action .question-vote-filled,
.question-action[aria-pressed="true"] .question-vote-outline { display: none; }
.question-action[aria-pressed="true"] .question-vote-filled { display: inline; }

.question-action[data-vote-value] { position: relative; }
.question-action.question-vote-ripple::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 26px;
    height: 26px;
    border: 1px solid currentColor;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    animation: question-vote-ripple 420ms ease-out;
}

@keyframes question-vote-ripple {
    from { transform: translate(-50%, -50%) scale(.7); opacity: .55; }
    to { transform: translate(-50%, -50%) scale(1.7); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .question-action.question-vote-ripple::after { animation: none; }
}

.question-action:disabled { opacity: .55; }

@media (hover: hover) {
    .question-action:enabled:not([data-corrected="false"]):hover { color: var(--question-action-accent); }
    .question-action-favorite:enabled:hover { color: var(--question-action-favorite) !important; }
    .question-action[data-vote-value="1"]:enabled:hover { color: var(--question-vote-positive); }
    .question-action[data-vote-value="-1"]:enabled:hover { color: var(--question-vote-negative); }
}

.question-actions-correction { margin-left: auto; }
.question-actions-correction .btn { min-height: 2rem; }
.question-vote-status { flex-basis: 100%; }
.question-vote-status.text-danger { color: var(--question-vote-negative) !important; }

@container (max-width: 490px) {
    .question-actions-tools { flex-basis: 100%; }
    .question-help-label-full { display: none; }
    .question-help-label-short { display: inline; }
}

@container (max-width: 310px) {
    /* Keep help/report beside correction on a second row, even at 320 px. */
    .question-actions { column-gap: .5rem; }
    .question-actions-tools { display: contents; }
    .question-actions-help { gap: .125rem; }
    .question-actions-help .question-action { padding-inline: .3125rem; }
    .question-actions-separated::before { display: none; }
}

@media (pointer: coarse), (max-width: 575.98px) {
    .question-action,
    .question-actions-correction .btn {
        min-width: 44px;
        min-height: 44px;
    }
}
