/* One construction block; simple form groups, without person/number tables. */
[data-grammar-topic="present-perfect"] .pp-constructions { container-type:inline-size; container-name:pp-constructions; }
.pp-construction-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.pp-construction-card.formula-card { display:flex; flex-direction:column; gap:12px; min-width:0; padding:20px; scroll-margin-top:112px; }
.pp-construction-card .formula { display:flex; flex-wrap:wrap; align-content:center; align-items:center; gap:8px; min-height:106px; margin:0; }
.pp-construction-card :is(.pp-construction-card__rule,.pp-construction-card__why) { margin:0; color:var(--muted); line-height:1.55; font-size:.94rem; }
.pp-construction-card .example-stack { gap:8px; margin:0; }
@container pp-constructions (max-width:700px) { .pp-construction-grid { grid-template-columns:minmax(0,1fr); } }
@media (max-width:760px) {
 .pp-construction-grid { grid-template-columns:minmax(0,1fr); }
 .pp-construction-card.formula-card { padding:16px; }
}

.pp-more { margin:20px 0; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.pp-more summary { cursor:pointer; font-weight:700; }
[data-exercise-page="present-perfect"] [data-exercise-screen="matching"] { --plum:#246d63; }
[data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-bank button.is-used { background:#e0eee8; border-color:#8eb6aa; color:#24574e; }
[data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-drop { border-color:#82b6a9; background:#eaf6f1; color:#24574e; }
[data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card.is-selected { border-color:#3d9784; box-shadow:0 0 0 3px #3d978426; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-bank { background:#223f4d; border-color:#65808c; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-bank button { background:#304d5b; color:#edf3f5; border-color:#7696a3; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-bank button.is-picked { background:#28786b; color:#fff; border-color:#a5e5d0; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card { background:#263f4d; color:#edf3f5; border-color:#65808c; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card.is-correct { background:#254b45; border-color:#7cc6b3; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card.is-wrong { background:#523a3b; border-color:#e7a095; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card__sentence { color:#edf3f5; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card__number { background:#355563; color:#edf3f5; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card__status { color:#a5e5d0; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card.is-wrong .exercise-match-card__status { color:#ffc0b4; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-drop { background:#1b303b; color:#edf3f5; border-color:#82b6a9; opacity:1; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-drop.is-filled { background:#235e57; color:#fff; border-color:#a5e5d0; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-result.is-correct { background:#235e57; color:#edf3f5; border-color:#82b6a9; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-result.is-wrong { background:#523a3b; color:#edf3f5; border-color:#e7a095; }
html[data-theme="dark"] [data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-result :is(p,strong) { color:inherit; }

/* Dialogue cards grow when their reason is opened; they must not overlap. */
.exercise-page[data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-contexts { grid-auto-rows:max-content; align-content:start; }
.exercise-page[data-exercise-page="present-perfect"] [data-exercise-screen="matching"] .exercise-match-card { min-height:max-content; }
.exercise-page[data-exercise-page="present-perfect"] { --plum:#246d63; }
html[data-theme="dark"] .exercise-page[data-exercise-page="present-perfect"] { --plum:#8ee0ca; }

/* Optional Polish meaning must follow the exercise theme too. */
html[data-theme="dark"] .exercise-page[data-exercise-page="present-perfect"] .edu-context[open] > p {
 background:#243e4b; color:#edf5f8; border-color:#88cfbc;
}

.pp-form-table { width:100%;min-width:0;table-layout:fixed;border-collapse:collapse; }
.pp-form-table :is(th,td) { text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);overflow-wrap:anywhere; }
body[data-exercise-page="present-perfect"]:has([data-exercise-feedback]:not([hidden])) #exercise-streak-fire-burst { display:none; }

.pp-form-table-wrap { min-width:0;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface); }
