.verb-trainer { color: #222b28; font-size: 18px; padding: clamp(1.25rem, 3vw, 2.75rem); }
.verb-trainer__header { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 1rem; margin-bottom: 1.5rem; }
.verb-trainer__eyebrow { color: #9c542f; font-size: 14px; font-weight: 800; letter-spacing: .13em; margin: 0 0 .45rem; text-transform: uppercase; }
.verb-trainer h2 { font-family: Georgia, serif; font-size: clamp(2.15rem, 4vw, 3.25rem); line-height: 1.08; margin: 0; }
.verb-trainer__count { background: #efe5d4; border-radius: 999px; color: #744129; font-size: 16px; font-weight: 750; padding: .7rem 1rem; white-space: nowrap; }
.verb-trainer__intro { color: #4d5853; font-size: 18px; line-height: 1.7; margin: 0 0 1.75rem; max-width: 80ch; }
.verb-filters { background: #f8f4ed; border: 1px solid #ded3c2; border-radius: 18px; display: grid; gap: 1rem; grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 1.25rem; }
.preposition-filters { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(180px, .8fr); }
.sentence-filters { grid-template-columns: repeat(2, minmax(240px, 1fr)) minmax(210px, .65fr); max-width: 920px; }
.aci-filters { grid-template-columns: minmax(300px, 1fr) minmax(210px, .65fr); max-width: 680px; }
.pc-filters { grid-template-columns: minmax(300px, 1fr) minmax(210px, .65fr); max-width: 680px; }
.pc-mode { color: #53605a; font-size: 17px; font-weight: 750; margin: -.5rem 0 1.25rem; }
.subjunctive-filters { grid-template-columns: minmax(300px, 1fr) minmax(210px, .65fr); max-width: 680px; }
.sequence-filters { grid-template-columns: repeat(2, minmax(240px, 1fr)) minmax(190px, .7fr); max-width: 920px; }
.gerund-explainer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ablative-explainer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ablative-explainer__principle { grid-column: 1 / -1; }
.subjunctive-choice { align-items: flex-start; flex-direction: column; gap: .25rem; }
.subjunctive-choice strong { color: #9c542f; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.subjunctive-choice span { color: inherit; }
.trainer-explainer { border: 1px solid #d8cbb9; border-radius: 16px; margin: 0 0 1.5rem; overflow: hidden; }
.trainer-explainer > summary { align-items: center; background: #f5efe5; color: #3f4a45; cursor: pointer; display: flex; font-size: 17px; font-weight: 800; justify-content: space-between; list-style: none; padding: 1rem 1.2rem; }
.trainer-explainer > summary::-webkit-details-marker { display: none; }
.trainer-explainer > summary:hover, .trainer-explainer > summary:focus-visible { background: #eee4d6; outline: none; }
.trainer-explainer__toggle { color: #9c542f; font-size: 25px; line-height: 1; transition: transform .18s ease; }
.trainer-explainer[open] .trainer-explainer__toggle { transform: rotate(45deg); }
.trainer-explainer__grid { background: #fffdf9; display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trainer-explainer article { box-shadow: 0 0 0 1px #e7ddcf; padding: 1.2rem; }
.trainer-explainer__tag { color: #9c542f; font-size: 12px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.trainer-explainer h3 { color: #203a32; font-family: Georgia, serif; font-size: 21px; margin: .35rem 0 .55rem; }
.trainer-explainer p { color: #53605a; font-size: 15px; line-height: 1.55; margin: 0; }
.trainer-explainer .trainer-explainer__example { border-top: 1px solid #e5dbcd; color: #33423c; margin-top: .8rem; padding-top: .7rem; }
.trainer-explainer__example small { color: #68736d; display: block; font-size: 15px; margin-top: .2rem; }
.trainer-explainer .gerund-explainer__caveat { margin-top: .8rem; }
.verb-filters label, .verb-analysis label { color: #35403b; display: grid; font-size: 15px; font-weight: 800; gap: .5rem; letter-spacing: .01em; }
.verb-filters select, .verb-analysis select, .verb-answer { background: #fff; border: 1px solid #bfb5a7; border-radius: 10px; color: #1e2824; font-family: inherit; font-size: 17px; font-weight: 600; min-height: 54px; padding: .75rem .85rem; width: 100%; }
.verb-actions { align-items: end; display: flex; }
.verb-button { background: #2f5f50; border: 0; border-radius: 10px; color: #fff; cursor: pointer; font-size: 17px; font-weight: 800; min-height: 52px; padding: .8rem 1.25rem; width: 100%; }
.verb-button:hover { background: #244c40; }
.verb-button:disabled { cursor: wait; opacity: .65; }
.verb-button--secondary { background: #e9dfd0; color: #573c2c; }
.verb-button--secondary:hover { background: #ddcfbc; }
.verb-exercise { background: linear-gradient(145deg, #fff 0%, #f9f5ee 100%); border: 1px solid #ded3c2; border-radius: 22px; box-shadow: 0 18px 45px rgba(49, 40, 29, .10); margin-top: 1.5rem; overflow: hidden; }
.verb-scorebar { align-items: center; background: #243f36; color: #fff; display: flex; font-size: 16px; gap: 1rem; justify-content: space-between; padding: 1rem 1.35rem; }
.verb-scorebar span { opacity: .75; }
.verb-question { padding: clamp(1.5rem, 5vw, 3.5rem); text-align: center; }
.verb-question__label { color: #9c542f; font-size: 14px; font-weight: 800; letter-spacing: .12em; margin: 0; text-transform: uppercase; }
.verb-question__prompt { color: #203a32; font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1.12; margin: .7rem 0 .4rem; }
.verb-question__lexeme { color: #59645f; font-size: 18px; margin: 0 0 1.75rem; }
.verb-answer { font-size: 20px; margin: 0 auto; max-width: 560px; text-align: center; }
.verb-formation { margin: 0 auto; max-width: 980px; }
.verb-dropzone { align-items: center; background: #fffdf9; border: 2px dashed #ad8d68; border-radius: 14px; color: #765f48; display: flex; font-size: 17px; font-weight: 750; justify-content: center; margin: 0 auto; min-height: 82px; padding: .75rem; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; width: min(100%, 580px); }
.verb-dropzone.is-over { background: #edf5f1; border-color: #2f6b58; box-shadow: 0 0 0 4px rgba(47, 107, 88, .14); }
.verb-dropzone.is-filled { border-style: solid; border-color: #2f6b58; }
.verb-tile-hint { color: #69736e; font-size: 15px; margin: .7rem 0 1.1rem; }
.verb-tiles { display: grid; gap: .75rem; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.verb-tile { align-items: center; background: linear-gradient(145deg, #fff 0%, #f2eadf 100%); border: 1px solid #cbbba7; border-radius: 12px; box-shadow: 0 5px 14px rgba(50, 42, 31, .09); color: #263e36; cursor: grab; display: flex; font-family: Georgia, serif; font-size: 19px; font-weight: 700; justify-content: center; min-height: 62px; overflow-wrap: anywhere; padding: .7rem .55rem; touch-action: none; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; user-select: none; }
.verb-tile:hover, .verb-tile:focus-visible { border-color: #4c7a69; box-shadow: 0 8px 20px rgba(47, 95, 80, .17); outline: none; transform: translateY(-2px); }
.verb-tile:active { cursor: grabbing; }
.verb-tile.is-dragging { box-shadow: 0 14px 30px rgba(35, 61, 52, .25); opacity: .88; pointer-events: none; }
.verb-tile.is-placed { background: #edf5f1; border-color: #2f6b58; box-shadow: none; cursor: pointer; min-width: min(100%, 260px); }
.verb-tile.is-correct { background: #e4f4e9; border-color: #28734e; color: #175737; }
.verb-tile.is-wrong { background: #f9e7e4; border-color: #a23b32; color: #7f2e28; }
.verb-tile:disabled { cursor: default; opacity: 1; transform: none; }
.sentence-prompt { font-size: clamp(2.15rem, 5vw, 3.8rem); }
.sentence-order-note { color: #68736e; font-size: 16px; margin: -.1rem 0 1.4rem; }
.sentence-formation { max-width: 900px; }
.sentence-dropzone { width: min(100%, 820px); }
.translation-tiles { grid-template-columns: 1fr; margin: 0 auto; max-width: 820px; }
.translation-tiles .verb-tile { font-family: inherit; font-size: 18px; justify-content: flex-start; min-height: 58px; padding: .8rem 1rem; text-align: left; }
.verb-analysis { display: grid; gap: .75rem; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0 auto; max-width: 920px; text-align: left; }
.noun-analysis { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 720px; }
.kng-adjective-info { background: #f3ecdf; border-radius: 999px; color: #5f4938; display: inline-block; font-size: 17px; font-weight: 700; margin: 0 0 1.5rem; padding: .6rem 1rem; }
.kng-trainer .verb-question__lexeme { margin-bottom: .8rem; }
.kng-hint-row { align-items: center; display: flex; justify-content: center; min-height: 46px; margin: 0 0 .8rem; }
.preposition-trainer .kng-hint-row { flex-wrap: wrap; gap: .65rem; }
.kng-hint-button { background: transparent; border: 1px solid #b89b78; border-radius: 999px; color: #6b4b31; cursor: pointer; font-size: 15px; font-weight: 800; padding: .55rem .9rem; }
.kng-hint-button:hover, .kng-hint-button:focus-visible { background: #f7f0e5; border-color: #8f6c49; outline: none; }
.kng-hint-button span { font-weight: 650; opacity: .78; }
.kng-genus { background: #edf5f1; border: 1px solid #a8c7bb; border-radius: 999px; color: #245343; font-size: 16px; font-weight: 800; margin: 0; padding: .55rem 1rem; }
.verb-question__actions { display: flex; gap: .75rem; justify-content: center; margin: 1.25rem auto 0; max-width: 520px; }
.verb-feedback { font-size: 17px; font-weight: 750; min-height: 1.5em; margin: 1rem 0 0; }
.verb-feedback.is-correct { color: #28734e; }
.verb-feedback.is-wrong { color: #a23b32; }
.verb-finish { background: #f8f4ed; border: 1px solid #ded3c2; border-radius: 18px; margin-top: 1.5rem; padding: 2.5rem; text-align: center; }
.verb-finish { font-size: 18px; }
.verb-finish h3 { font-family: Georgia, serif; font-size: 2.25rem; margin: 0 0 .5rem; }
[hidden] { display: none !important; }
@media (max-width: 900px) { .verb-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } .verb-analysis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .verb-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .trainer-explainer__grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .translation-tiles { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .verb-trainer { font-size: 17px; padding: 1rem .75rem; } .verb-trainer__header { grid-template-columns: 1fr; } .verb-trainer__count { justify-self: start; } .verb-trainer__intro { font-size: 17px; } .verb-filters, .verb-analysis { grid-template-columns: 1fr; } .verb-question__actions { flex-direction: column; } .verb-scorebar { align-items: flex-start; flex-direction: column; } .verb-tile { font-size: 17px; } }
