/* PediaMath content: lesson and exercise pages, static pages. Loaded on singular views only. */

.pm-single-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
.pm-article { min-width: 0; }
.pm-article--page { max-width: 820px; }
.pm-article-head h1 { font-size: 32px; line-height: 1.18; letter-spacing: -.025em; margin: 0 0 16px; }
.pm-byline-row { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; margin: -4px 0 18px; }
.pm-byline { margin: 0; min-width: 0; flex: 1 1 auto; }
.pm-share { flex: none; }
.pm-share { position: relative; display: flex; gap: 8px; }
.pm-share[hidden] { display: none; }
.pm-share-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 190px; padding: 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); box-shadow: 0 14px 36px rgba(0, 0, 0, .18); }
.pm-share-menu[hidden] { display: none; }
.pm-share-menu a { display: block; padding: 9px 12px; border-radius: 8px; color: var(--ink); text-decoration: none; font-size: 14.5px; }
.pm-share-menu a:hover, .pm-share-menu a:focus-visible { background: var(--chip); outline: 0; }
.pm-toast { position: fixed; left: 50%; bottom: max(22px, env(safe-area-inset-bottom)); z-index: 60; transform: translateX(-50%); margin: 0; padding: 10px 18px; border-radius: 999px; background: var(--ink); color: var(--bg); font-size: 14px; font-weight: 600; box-shadow: 0 8px 24px rgba(0, 0, 0, .2); }
.pm-toast[hidden] { display: none; }
@media (max-width: 560px) {
	.pm-byline-row { flex-wrap: nowrap; gap: 10px; }
	.pm-byline-text { font-size: 14px; }
	.pm-act { width: 38px; height: 38px; padding: 0; justify-content: center; }
	.pm-act span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.pm-byline-text small { display: none; }
}
.pm-byline a { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.pm-byline img { width: 36px; height: 36px; border-radius: 50%; flex: none; border: 1px solid var(--line); background: var(--paper); }
.pm-byline-text { display: grid; line-height: 1.3; font-size: 14.5px; color: var(--ink2); }
.pm-byline b { color: var(--ink); font-weight: 600; }
.pm-byline small { font-size: 12.5px; color: var(--ink2); }
.pm-byline a:hover b { text-decoration: underline; text-decoration-color: var(--acc); text-underline-offset: .18em; }

/* Title block: engineering-drawing frame with corner marks. */
.pm-cartouche, .pm-toc--inline, .pm-prose .definition, .pm-prose .property, .pm-prose .theorem {
	--c: var(--ink);
	background:
		linear-gradient(var(--c), var(--c)) left top / 14px 2px no-repeat, linear-gradient(var(--c), var(--c)) left top / 2px 14px no-repeat,
		linear-gradient(var(--c), var(--c)) right top / 14px 2px no-repeat, linear-gradient(var(--c), var(--c)) right top / 2px 14px no-repeat,
		linear-gradient(var(--c), var(--c)) left bottom / 14px 2px no-repeat, linear-gradient(var(--c), var(--c)) left bottom / 2px 14px no-repeat,
		linear-gradient(var(--c), var(--c)) right bottom / 14px 2px no-repeat, linear-gradient(var(--c), var(--c)) right bottom / 2px 14px no-repeat;
	border: 1px solid var(--line);
}
.pm-cartouche { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); margin: 0 0 28px; }
.pm-cartouche div { padding: 9px 16px; border-left: 1px solid var(--line); }
.pm-cartouche div:first-child { border-left: 0; }
.pm-cartouche dt { font-size: 12.5px; color: var(--ink2); }
.pm-cartouche dd { margin: 0; font-weight: 600; font-size: 15px; }
.pm-cartouche a { text-decoration: none; }
.pm-cartouche a:hover { text-decoration: underline; }

/* Reading typography ---------------------------------------------------- */
.pm-prose { font-size: 17px; line-height: 1.7; max-width: 76ch; }
.pm-prose > * { margin-top: 0; }
.pm-prose p, .pm-prose ul, .pm-prose ol, .pm-prose table, .pm-prose figure, .pm-prose blockquote { margin: 0 0 16px; }
.pm-prose h2 { font-size: 24px; line-height: 1.25; letter-spacing: -.02em; margin: 44px 0 12px; scroll-margin-top: 84px; }
.pm-prose h3 { font-size: 18.5px; line-height: 1.3; margin: 28px 0 10px; scroll-margin-top: 84px; }
.pm-prose h4 { font-size: 16.5px; margin: 22px 0 8px; }
.pm-prose a { color: var(--tr); text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); text-underline-offset: .22em; transition: text-decoration-color .15s; }
.pm-prose a:hover { text-decoration-color: currentColor; text-decoration-thickness: 2px; }
.pm-prose a.pm-ext::after { content: "\2197"; display: inline-block; margin-left: .12em; font-size: .78em; line-height: 1; text-decoration: none; }
.pm-prose ul, .pm-prose ol { padding-left: 24px; }
.pm-prose li { margin: 4px 0; }
.pm-prose img, .pm-prose figure img { display: block; border-radius: 10px; }
.pm-prose figure { max-width: 100%; }
.pm-prose figcaption { font-size: 14px; color: var(--ink2); margin-top: 8px; }
.pm-prose blockquote { border-left: 3px solid var(--line); padding: 4px 0 4px 16px; color: var(--ink2); }
.pm-prose hr { border: 0; border-top: 1px solid var(--line); margin: 32px 0; }
.pm-prose code { font-family: var(--mono); font-size: .92em; background: var(--chip); padding: 1px 5px; border-radius: 5px; }
.pm-prose pre { font-family: var(--mono); font-size: 14px; background: var(--paper); padding: 14px 16px; border-radius: 10px; overflow-x: auto; }
.pm-prose pre code { background: none; padding: 0; }
.pm-prose table { width: 100%; border-collapse: collapse; font-size: 15.5px; display: block; overflow-x: auto; }
.pm-prose th, .pm-prose td { border: 1px solid var(--line); padding: 8px 12px; text-align: left; vertical-align: top; }
.pm-prose th { background: var(--paper); font-weight: 600; }
.pm-prose caption { caption-side: bottom; font-size: 14px; color: var(--ink2); padding-top: 8px; text-align: left; }

/* Mathematics ------------------------------------------------------------- */
.pm-prose .katex { position: relative; font-size: 1.06em; }
.pm-prose .katex-display, .pm-prose .math-display, .pm-prose .math-block, .pm-prose .pediamath-katex-scrollable { position: relative; overflow-x: auto; overflow-y: hidden; padding: 2px 0; margin: 14px 0; }
.pm-prose .katex-display > .katex { white-space: nowrap; }

/* Lesson boxes ------------------------------------------------------------ */
.pm-prose .definition, .pm-prose .property, .pm-prose .theorem { padding: 16px 22px 14px; margin: 20px 0 24px; }
.pm-prose .property, .pm-prose .theorem { --c: var(--acc); border-color: color-mix(in srgb, var(--acc) 50%, transparent); }
.pm-prose .definition > h3:first-child, .pm-prose .property > h3:first-child, .pm-prose .theorem > h3:first-child { font-size: 15px; font-weight: 600; color: var(--ink2); margin: 0 0 6px; }
.pm-prose .property > h3:first-child, .pm-prose .theorem > h3:first-child { color: var(--acc-text); }
.pm-prose .definition > :last-child, .pm-prose .property > :last-child, .pm-prose .theorem > :last-child { margin-bottom: 0; }
.pm-prose .warning, .pm-prose .astuce, .pm-prose .info, .pm-prose .tip, .pm-prose .note, .pm-prose .remark, .pm-prose .exemple, .pm-prose .example, .pm-prose .example-box, .pm-prose .exemple-box {
	border-left: 3px solid var(--tr); padding: 6px 0 6px 18px; margin: 20px 0 24px;
}
.pm-prose .warning { border-left-color: var(--acc); }
.pm-prose .warning > h3:first-child, .pm-prose .astuce > h3:first-child, .pm-prose .info > h3:first-child, .pm-prose .exemple > h3:first-child, .pm-prose .example > h3:first-child { font-size: 15.5px; margin: 0 0 4px; }
.pm-prose .warning > :last-child, .pm-prose .astuce > :last-child, .pm-prose .info > :last-child, .pm-prose .exemple > :last-child, .pm-prose .example > :last-child { margin-bottom: 0; }
.pm-prose .faq-item { border-top: 1px solid var(--line); padding: 14px 0 4px; }
.pm-prose .faq-item h3 { margin-top: 0; font-size: 17px; }
.pm-prose .exercice-block { border: 1px solid var(--line); border-radius: 14px; padding: 18px 22px; margin: 0 0 20px; }

/* Exercises (.mx-*) -------------------------------------------------------- */
.pm-prose .mx-c { border: 1px solid var(--line); border-radius: 14px; padding: 20px 24px; margin: 0 0 20px; scroll-margin-top: 84px; }
/* Header: title + actions button on the first row, difficulty under the title. The plugin's
   tools wrapper is dissolved (display: contents) so this holds with or without its script. */
.pm-prose .mx-c .mx-h.mx-h { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 10px; row-gap: 8px; align-items: start; margin-bottom: 14px; }
.pm-prose .mx-t { grid-column: 1; grid-row: 1; font-size: 18.5px; line-height: 1.3; margin: 0; }
.pm-prose .mx-h > .pm-exercise-card-tools { display: contents; }
.pm-prose .mx-h .mx-tag { grid-column: 1; grid-row: 2; justify-self: start; }
.pm-prose .mx-tag { --lv: var(--ink2); display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; line-height: 1.4; letter-spacing: .01em; white-space: nowrap; color: var(--lv); background: color-mix(in srgb, var(--lv) 11%, transparent); }
.pm-prose .mx-easy { --lv: var(--lv-easy); }
.pm-prose .mx-med { --lv: var(--lv-med); }
.pm-prose .mx-hard { --lv: var(--lv-hard); }
.pm-prose .mx-expert { --lv: var(--ink); }
.pm-prose .mx-h :is(.pm-exercise-action-trigger, .pm-exercise-action-skeleton) { grid-column: 2; grid-row: 1; width: 36px; height: 36px; min-width: 36px; min-height: 36px; margin: -6px -8px 0 0; border: 0; border-radius: 50%; background: transparent; }
.pm-prose .mx-h .pm-exercise-action-trigger { color: var(--ink2); transition: background-color .15s, color .15s; }
.pm-prose .mx-h .pm-exercise-action-trigger:is(:hover, :focus-visible, [aria-expanded="true"]) { background: var(--chip); color: var(--ink); }
.pm-prose .mx-h .pm-exercise-action-trigger:focus-visible { outline: 2px solid var(--acc); outline-offset: 1px; }
.pm-prose .mx-h .pm-exercise-action-trigger svg { width: 20px; height: 20px; }
.pm-prose .mx-h .pm-exercise-action-trigger svg circle { fill: currentColor; }
.pm-prose .mx-b > :last-child { margin-bottom: 0; }
.pm-prose .mx-q { padding-left: 24px; margin: 8px 0 0; }
.pm-prose .mx-c details { margin-top: 14px; }
.pm-prose .mx-c summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; min-height: 36px; padding: 0 15px; border-radius: 999px; background: var(--chip); }
.pm-prose .mx-c summary::-webkit-details-marker { display: none; }
.pm-prose .mx-c details.ms-b > summary { background: var(--acc-text); color: #fff; }
@media (prefers-color-scheme: dark) { .pm-prose .mx-c details.ms-b > summary { background: var(--acc); } }
@media (prefers-color-scheme: dark) { .pm-prose .mx-c details.ms-b > summary { color: #111; } }
.pm-prose .mx-c details[open] > summary { margin-bottom: 10px; }
.pm-prose .mx-is-hint { background: var(--chip); border-radius: 10px; padding: 10px 14px; font-size: 16px; }
.pm-prose .mx-is-sol { border-top: 1px dashed var(--line); padding-top: 12px; }
.pm-prose .mx-content > :last-child { margin-bottom: 0; }
.pm-prose .mx-section-h2 { margin-top: 40px; }
.pm-prose .mx-is-sol table td, .pm-prose .mx-b table td { text-align: center; padding: 5px 6px; font-size: 14.5px; border: 1px solid var(--line); white-space: nowrap; }
.pm-prose .mx-is-sol table td:first-child { text-align: left; }
.pm-prose .mx-q[type="A"] { list-style-type: upper-alpha; }
.pm-prose table.pm-sign th, .pm-prose table.pm-sign td { text-align: center; padding: 5px 6px; font-size: 14.5px; white-space: nowrap; }
.pm-prose table.pm-sign td:first-child, .pm-prose table.pm-sign th:first-child { text-align: left; }
@media (max-width: 420px) { .pm-prose table.pm-sign th, .pm-prose table.pm-sign td { padding: 4px 3px; font-size: 13px; } }
@media (max-width: 360px) { .pm-prose table.pm-sign th, .pm-prose table.pm-sign td { padding: 3px 2px; font-size: 12.5px; } }
@media (max-width: 420px) { .pm-prose .mx-is-sol table td, .pm-prose .mx-b table td { padding: 4px 3px; font-size: 13px; } }
@media (max-width: 360px) { .pm-prose .mx-c { padding: 14px 12px; } .pm-prose .mx-is-sol > ol { padding-left: 18px; } .pm-prose .mx-is-sol table td, .pm-prose .mx-b table td { padding: 3px 2px; font-size: 12.5px; } }

/* Table of contents (theme-built from Easy TOC's anchors) ------------------ */
.pm-prose .ez-toc-section, .pm-prose .pm-exercise-anchor-alias { scroll-margin-top: 84px; }
#ez-toc-container { display: none !important; } /* never printed; guards cached pages */
.pm-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: pm-toc; }
.pm-toc li { counter-increment: pm-toc; margin: 0; }
.pm-toc li.pm-toc-gap { counter-increment: none; }
.pm-toc a { display: grid; grid-template-columns: 2.4em minmax(0, 1fr); padding: 5px 0; color: var(--ink2); text-decoration: none; font-size: 14.5px; line-height: 1.4; }
.pm-toc a::before { content: counters(pm-toc, "."); font-variant-numeric: tabular-nums; color: var(--ink2); opacity: .8; }
.pm-toc ol ol { padding-left: 2.4em; }
.pm-toc ol ol a { font-size: 14px; }
.pm-toc a:hover { color: var(--ink); }
.pm-toc .katex { font-size: 1em; }
.pm-toc-title { font-weight: 600; }
.pm-toc--inline { margin: 24px 0 32px; font-size: 15px; }
.pm-toc--inline summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 13px 18px; }
.pm-toc--inline summary::-webkit-details-marker { display: none; }
.pm-toc--inline summary::after { content: ""; margin-left: auto; width: 9px; height: 9px; border-right: 1.5px solid var(--ink2); border-bottom: 1.5px solid var(--ink2); transform: rotate(45deg) translate(-2px, -2px); transition: transform .15s; }
.pm-toc--inline[open] summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
.pm-toc-count { font-size: 13px; color: var(--ink2); }
.pm-toc--inline nav { border-top: 1px solid var(--line); padding: 10px 18px 14px; }
.pm-toc--aside { position: sticky; top: 84px; max-height: calc(100vh - 104px); overflow: auto; overscroll-behavior: contain; border-left: 1px solid var(--line); padding: 2px 0 2px 16px; scrollbar-width: thin; }
.pm-toc--aside .pm-toc-title { font-size: 12.5px; letter-spacing: .07em; text-transform: uppercase; color: var(--ink2); margin: 0 0 6px; }
.pm-toc--aside a { margin-left: -17px; padding-left: 15px; border-left: 2px solid transparent; }
.pm-toc--aside ol ol a { margin-left: calc(-17px - 2.4em); padding-left: calc(15px + 2.4em); }
.pm-toc--aside a[aria-current="true"] { color: var(--ink); font-weight: 600; border-left-color: var(--acc); }
.pm-toc--aside a[aria-current="true"]::before { color: var(--acc-text); opacity: 1; }
@media (min-width: 901px) { .pm-toc--inline { display: none; } }
@media (max-width: 900px) { .pm-toc--aside { display: none; } }

/* Ads inside content: space is reserved before the ad loads (no layout shift). */
.pm-prose .pediamath-content-ad { margin: 28px 0; min-height: 280px; contain: layout paint; }
.pm-prose ins.adsbygoogle[data-pediamath-manual-ad="1"] { margin: 0 auto; }
/* Slot sizes are in pediamath-content-manual-ad.php. On phones the slot may use the page gutters. */
@media (max-width: 640px) { .pm-prose .pediamath-content-ad { margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); } }
@media (max-width: 367.98px) { .pm-prose .pediamath-content-ad { min-height: 250px; } }

/* Lesson ↔ exercise links added by content-architecture -------------------- */
.pm-prose .pmca-course-practice { border-top: 1px solid var(--line); margin-top: 36px; padding-top: 16px; }
.pm-prose .pmca-course-practice__label { font-weight: 600; margin: 0 0 6px; }

/* Side column ------------------------------------------------------------- */
.pm-aside { align-self: stretch; display: grid; gap: 18px; align-content: start; }
.pm-aside-title { font-size: 16px; margin: 6px 0 0; }
.pm-path { border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px 8px; }
.pm-path-title { margin: 0 0 8px; font-size: 12.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--ink2); }
.pm-path ol { list-style: none; margin: 0; padding: 0; }
.pm-path li { position: relative; padding-left: 24px; }
.pm-path li::before { content: ""; position: absolute; left: 4px; top: 16px; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--ink2); background: var(--bg); z-index: 1; }
.pm-path li:not(:last-child)::after { content: ""; position: absolute; left: 9px; top: 26px; bottom: -14px; border-left: 1.5px dashed var(--line); }
.pm-path li.is-current::before { border-color: var(--acc); background: var(--acc); }
.pm-path a { display: grid; gap: 1px; padding: 9px 8px 9px 6px; margin-left: -6px; border-radius: 10px; text-decoration: none; color: var(--ink); }
.pm-path a:hover { background: var(--chip); }
.pm-path a:hover .pm-path-t { text-decoration: underline; text-decoration-color: var(--acc); text-underline-offset: .18em; }
.pm-path-k { font-size: 12.5px; font-weight: 600; color: var(--ink2); }
.pm-path-t { font-size: 14.5px; font-weight: 600; line-height: 1.35; }
.pm-path li.is-current .pm-path-k { color: var(--acc-text); }
.pm-path li.is-current a { pointer-events: none; }

@media (max-width: 1100px) { .pm-single-grid { grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; } }
@media (max-width: 900px) {
	.pm-single-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
	.pm-article-head h1 { font-size: 24px; }
	.pm-prose { font-size: 16.5px; }
	.pm-prose h2 { font-size: 21px; }
	.pm-cartouche { grid-template-columns: 1fr 1fr; }
	.pm-cartouche div:nth-child(3) { border-left: 0; }
	.pm-cartouche div:nth-child(n+3) { border-top: 1px solid var(--line); }
	.pm-prose .mx-c { padding: 16px; border-radius: 12px; }
	.pm-prose .definition, .pm-prose .property, .pm-prose .theorem { padding: 14px 16px 12px; }
}

/* Plugin interfaces in the theme's look (tools, exercise actions, reports) ---------- */
body .pm-tool {
	--pm-tool-primary: var(--ink); --pm-tool-primary-dark: var(--ink); --pm-tool-text: var(--ink); --pm-tool-muted: var(--ink2);
	--pm-tool-border: var(--line); --pm-tool-soft-border: var(--line); --pm-tool-surface: var(--bg); --pm-tool-surface-strong: var(--paper);
	--pm-tool-blue: var(--tr);
}
body .pm-tool { color: var(--ink); }
body .pm-tool-card, body .pm-tool .pm-tool-card { border: 1px solid var(--line); border-radius: 14px; box-shadow: none; background: var(--bg); color: var(--ink); }
body .pm-tool :is(.pm-tool-card__header, .pm-scientific__display, .pm-scientific__keypad, .pm-power__controls, .pm-fraction__controls, .pm-quadratic__controls, .pm-grapher__controls, .pm-integral__controls, .pm-matrix__controls, .pm-inverse-matrix__controls, .pm-tool-examples, .pm-fraction__toolbar, .pm-matrix__toolbar, .pm-grapher__options, .pm-grapher__functions) { background: var(--bg); border-color: var(--line); color: var(--ink); box-shadow: none; }
body .pm-tool .pm-tool-result { background: var(--paper); border-color: var(--line); color: var(--ink); }
body .pm-tool :is(.pm-tool-card__header h2, .pm-tool-result h3) { color: var(--ink); }
body .pm-tool :is(.pm-tool-card__intro, .pm-tool-field label, .pm-scientific__display label, .pm-tool-examples > span, .pm-grapher__options) { color: var(--ink2); }
body .pm-tool .pm-tool-card__eyebrow { color: var(--acc-text); }
body .pm-tool :is(.pm-tool-badge, .pm-tool-segment) { background: var(--chip); border-color: transparent; color: var(--ink); }
body .pm-tool .pm-tool-segment button { color: var(--ink2); background: transparent; }
body .pm-tool .pm-tool-segment button.is-active { background: var(--ink); color: var(--bg); }
body .pm-tool :is(.pm-tool-field input, .pm-tool-field textarea, .pm-tool-field select, .pm-scientific__display input) { background: var(--bg); border-color: var(--line); border-radius: 10px; color: var(--ink); }
body .pm-tool :is(.pm-tool-field input, .pm-tool-field textarea, .pm-scientific__display input):focus { border-color: var(--acc); box-shadow: 0 0 0 3px color-mix(in srgb, var(--acc) 22%, transparent); outline: 0; }
body .pm-tool .pm-tool-button { background: var(--ink); border-color: var(--ink); color: var(--bg); border-radius: 999px; }
body .pm-tool .pm-tool-button:hover { background: var(--acc); border-color: var(--acc); color: #fff; }
body .pm-tool :is(.pm-tool-examples button, .pm-grapher__options button, .pm-grapher__options label, .pm-grapher__function, .pm-scientific__key, .pm-tool-result__formula, .pm-tool-result__line) { background: var(--paper); border-color: var(--line); color: var(--ink); }
body .pm-tool :is(.pm-tool-examples button, .pm-grapher__options button, .pm-scientific__key):hover { border-color: var(--ink); background: var(--chip); color: var(--ink); }
body .pm-tool .pm-scientific__key[data-pm-scientific-action="calculate"] { background: var(--acc); border-color: var(--acc); color: #fff; }
body .pm-tool :is(.pm-grapher__viewport, .pm-grapher__canvas) { border-color: var(--line); }
body .pm-tool-rating { background: var(--bg); color: var(--ink); border-top-color: var(--line); }
body .pm-tool-rating__summary, body .pm-tool-rating__label { color: var(--ink2); }
body .pm-tool-rating__stars button.is-active, body .pm-tool-rating__stars button:hover { color: var(--acc); }
body .pm-tool-report-open { border: 1px solid var(--line); border-radius: 999px; background: none; color: var(--ink); }

body { --mx-main: var(--acc); --lv-easy: #177245; --lv-med: #96600a; --lv-hard: #b42318; }
@media (prefers-color-scheme: dark) { body { --lv-easy: #63d19b; --lv-med: #e5b649; --lv-hard: #ff8f84; } }
body .pm-exercise-action-menu { border: 1px solid var(--line); border-radius: 12px; padding: 6px; background: var(--bg); color: var(--ink); box-shadow: 0 14px 36px rgba(0, 0, 0, .18); }
body .pm-exercise-action-menu [role="menuitem"] { border-radius: 8px; font-weight: 500; font-size: 14.5px; color: var(--ink); }
body .pm-exercise-action-menu [role="menuitem"] svg { color: var(--ink2); }
body .pm-exercise-action-menu [role="menuitem"]:is(:hover, :focus-visible) { background: var(--chip); color: var(--ink); }
body .pm-exercise-action-menu button[data-action="save"][data-saved="true"], body .pm-exercise-action-menu button[data-action="save"][data-saved="true"] svg { color: var(--lv-easy); }
body .pm-exercise-action-menu button[data-action="report"], body .pm-exercise-action-menu button[data-action="report"] svg { color: var(--lv-hard); }
body .pm-exercise-toast { border-radius: 999px; background: var(--ink); color: var(--bg); padding: 10px 18px; }
body .pm-exercise-report-dialog, body .pm-tool-report-dialog { border: 1px solid var(--line); border-radius: 16px; background: var(--bg); color: var(--ink); box-shadow: 0 24px 64px rgba(0, 0, 0, .28); }
body .pm-exercise-report-header h2, body .pm-tool-report-header h2 { color: var(--ink); }
body .pm-exercise-report-context, body .pm-exercise-report-note, body .pm-exercise-report-status,
body .pm-tool-report-context, body .pm-tool-report-note, body .pm-tool-report-status { color: var(--ink2); }
body .pm-exercise-report-field, body .pm-tool-report-field { color: var(--ink); }
body .pm-exercise-report-field select, body .pm-exercise-report-field textarea,
body .pm-tool-report-field select, body .pm-tool-report-field textarea { border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--ink); }
body .pm-exercise-report-close, body .pm-tool-report-close { border-color: var(--line); border-radius: 999px; color: var(--ink2); }
body .pm-exercise-report-actions button, body .pm-tool-report-actions button { border-radius: 999px; font-weight: 600; }
body .pm-exercise-report-cancel, body .pm-tool-report-cancel { background: var(--chip); border-color: transparent; color: var(--ink); }
body .pm-exercise-report-submit, body .pm-tool-report-submit { background: var(--ink); border-color: var(--ink); color: var(--bg); }
body .pm-exercise-report-submit:hover, body .pm-tool-report-submit:hover { background: var(--acc); border-color: var(--acc); color: #fff; }
body .pm-saved-exercises-clear { border-color: var(--line); border-radius: 999px; background: none; color: var(--ink); }
body .pm-saved-exercises-count, body .pm-saved-exercise-meta, body .pm-saved-exercises-empty { color: var(--ink2); }
/* Horner tables (Moroccan Tronc commun): separator under the products, bar after the root column, remainder highlighted. */
.pm-prose table.pm-horner { border-collapse: collapse; }
.pm-prose table.pm-horner td { border: 0; }
.pm-prose table.pm-horner tr:last-child td { border-top: 2px solid var(--ink); }
.pm-prose table.pm-horner td:first-child { border-right: 2px solid var(--ink); }
.pm-prose table.pm-horner tr:last-child td:last-child { background: var(--chip); border-left: 2px solid var(--ink); }

/* Summary (« Résumé de cours ») tables: on phones each row becomes a card, label above its formula. */
@media (max-width: 600px) {
	.pm-prose table.pm-recap, .pm-prose table.pm-recap tbody, .pm-prose table.pm-recap tr, .pm-prose table.pm-recap th, .pm-prose table.pm-recap td { display: block; width: auto; }
	.pm-prose table.pm-recap { overflow: visible; }
	.pm-prose table.pm-recap thead { display: none; }
	.pm-prose table.pm-recap tr { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin: 0 0 8px; background: var(--bg); }
	.pm-prose table.pm-recap th, .pm-prose table.pm-recap td { border: 0; padding: 0; background: none; }
	.pm-prose table.pm-recap tbody th, .pm-prose table.pm-recap td:first-child { font-weight: 600; margin: 0 0 4px; }
	.pm-prose table.pm-recap td + td { overflow-x: auto; }
}
