.article-contents { flex-wrap: wrap; gap: 6px; margin-block: 24px; }
.article-contents a { padding: 8px 12px; border: 1px solid #cfd5e3; background: white; color: #3f41bf; }
.tense-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tense-card { margin: 0; padding: 20px; border: 2px solid #14182b; background: white; }
.tense-card h3 { margin-top: 0; }
.tense-card p { font-size: .92rem; }
.tense-card figure { margin: 20px 0; }
.tense-card figcaption { font-size: .82rem; }
.form-rule { padding: 8px 10px; background: #f0efff; border-left: 3px solid #5557e8; }
.form-example { font-weight: 750; }
.tense-timeline { display: block; width: 100%; overflow: visible; }
.tense-timeline text { font: 16px sans-serif; fill: #14182b; }
.time-axis, .now-line { stroke: #14182b; stroke-width: 2; fill: none; }
.reference-line { stroke: #5557e8; stroke-width: 2; }
.reference-link { stroke: #5557e8; stroke-width: 2; stroke-dasharray: 3 3; fill: none; }
.event-mark { fill: #5557e8; }
.activity-bar { fill: #dafa58; stroke: #14182b; }
.reference-source { display: inline-flex; align-items: center; min-height: 44px; font-size: .8rem; }
.source-notes { gap: 14px; }
.source-notes dd { color: #14182b; font-size: .95rem; }
.edit-example { border-left: 3px solid #5557e8; padding: 4px 0 4px 18px; margin-block: 24px; }
@media (max-width: 640px) { .tense-grid { grid-template-columns: 1fr; } }
.grammar-figure, .sentence-comparison { margin: 24px 0; }
figcaption { font-size: .85rem; color: #4c5368; }
.timeline-panel + .timeline-panel { margin-top: 30px; padding-top: 20px; border-top: 1px solid #cfd5e3; }
.timeline-panel h3 { font-size: 1.05rem; line-height: 1.4; }
.timeline-panel p { font-size: .9rem; }
.timeline { margin: 26px 0 16px; }
.timeline-track { height: 46px; position: relative; border-bottom: 2px solid #14182b; }
.reading-span { position: absolute; left: 0; bottom: 6px; width: 62%; padding: 4px 8px; background: #dafa58; border: 1px solid #14182b; font-size: .75rem; font-weight: 800; }
.finished-mark { position: absolute; left: 0; bottom: 8px; color: #3f41bf; font-size: .8rem; font-weight: 800; }
.stop-mark, .now-mark { position: absolute; bottom: -7px; height: 12px; border-left: 2px solid #14182b; }
.stop-mark { left: 50%; }
.now-mark { right: 0; }
.timeline-labels { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; margin-top: 10px; font-size: .75rem; }
.timeline-labels strong { text-align: center; }
.timeline-labels span:last-child { text-align: right; }
.sentence-comparison dl { grid-template-columns: 1fr 1fr; }
.sentence-comparison dd { color: #14182b; font-size: 1rem; }
@media (max-width: 540px) { .sentence-comparison dl { grid-template-columns: 1fr; } }
