.active-passive-unit { display: grid; gap: 1.5rem; margin: 2rem 0; }
.p-reference, .p-practice { display: grid; gap: 1.35rem; }
.p-heading { max-width: 55rem; }
.p-heading h2 { margin: .25rem 0 .6rem; }
.p-heading p, .p-card p, .p-activity p { line-height: 1.6; }
.p-example { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(16rem, .8fr); gap: 1rem; align-items: stretch; }
.p-figure, .p-context-figure { margin: 0; overflow: hidden; border: 1px solid #cbe0ec; border-radius: 1rem; background: #eaf4f8; }
.p-figure img, .p-context-figure img { width: 100%; height: auto; display: block; object-fit: contain; background: #fff; }
.p-figure figcaption, .p-context-figure figcaption { padding: .8rem 1rem; color: #254960; background: rgb(255 255 255 / 94%); line-height: 1.4; }
.p-context-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.p-card, .p-activity { padding: clamp(1rem, 3vw, 1.5rem); border: 1px solid #cbe0ec; border-radius: 1rem; background: #fff; box-shadow: 0 .5rem 1.5rem rgb(9 44 70 / 6%); }
.p-card h3, .p-activity h3 { margin: 0 0 .6rem; color: #0e4164; }
.p-table-wrap { overflow-x: auto; border: 1px solid #cbe0ec; border-radius: 1rem; background: #fff; }
.p-table { width: 100%; min-width: 46rem; border-collapse: collapse; color: #183c56; }
.p-card .p-table { min-width: 0; table-layout: fixed; }
#app .unit-p-page .lesson-head > .hero-image { height: auto; object-fit: contain; background: #fff; }
.p-table caption { padding: 1rem 1.2rem; color: #0e4164; background: #eef8fc; font-size: 1.05rem; font-weight: 800; text-align: left; }
.p-table th, .p-table td { padding: .75rem 1rem; border-top: 1px solid #d2e1e9; text-align: left; vertical-align: top; }
.p-table th { background: #f7fbfd; color: #0e4164; }
.p-rule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.p-modal-list { display: grid; gap: .5rem; padding-left: 1.25rem; }
.p-task-grid { display: grid; gap: .85rem; margin: 1rem 0; }
.p-task { display: grid; gap: .55rem; padding: 1rem; border: 1px solid #d2e1e9; border-radius: .8rem; background: #f9fcfd; }
.p-task-source { line-height: 1.55; }
.p-input { width: 100%; min-height: 3rem; padding: .65rem .75rem; border: 1px solid #9fc2d7; border-radius: .6rem; color: #123551; background: #fff; font: inherit; }
.p-input:focus { outline: 3px solid rgb(72 179 232 / 32%); outline-offset: 2px; }
.p-model { margin: 0; color: #315a70; font-size: .94rem; }
.p-model[hidden] { display: none; }
.p-correct { border-color: #50b987; background: #eefbf4; }
.p-incorrect { border-color: #df7e73; background: #fff4f1; }
.p-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.p-score { min-height: 1.5rem; margin: 0; font-weight: 700; color: #315a70; }
@media (max-width: 760px) { .p-example, .p-rule-grid, .p-context-grid { grid-template-columns: 1fr; } }
