.ep-word-save { display: flex; align-items: baseline; flex-wrap: wrap; gap: .6rem 1rem; margin-top: 1rem; }
.ep-word-save button { padding: .45rem .7rem; border: 1px solid #cad5e4; border-radius: 4px; background: #f4f7fc; color: #425d83; font: inherit; font-size: .9rem; cursor: pointer; }
.ep-word-save button[aria-pressed="true"] { color: #326861; background: #eef6f3; border-color: #bed8d0; }
.ep-word-save button:disabled { opacity: .65; cursor: wait; }
.ep-word-save [role="status"] { font-size: .85rem; color: #56647c; }
.vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) { display: flex; flex-direction: column; }
.vocab-card-grid > .vocab-card > .ep-word-save { margin-top: auto; padding-top: 1rem; }
/* Each desktop card pair shares semantic rows, including optional fields.
   Shorter/missing content reserves space without fixed heights or truncation. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 769px) {
    .vocab-card-grid:has(> .vocab-card > .ep-word-save, > [data-report-useful-expression]) { row-gap: 0; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) {
      display: grid; grid-template-rows: subgrid; grid-row: span 12;
      row-gap: 0; margin-bottom: .9rem;
    }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > * { align-self: start; min-width: 0; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > header { grid-row: 1; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > .vocab-card__evidence { grid-row: 2; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > .vocab-card__route { grid-row: 3; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > h4 { grid-row: 4; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > .vocab-card__sense { grid-row: 5 / span 2; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > .vocab-card__pattern { grid-row: 7; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > .vocab-card__collocations { grid-row: 8; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > .vocab-card__example { grid-row: 9 / span 2; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > footer { grid-row: 11; }
    .vocab-card-grid > .vocab-card > .ep-word-save { grid-row: 12; margin-top: 0; }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > :is(.vocab-card__sense, .vocab-card__example) {
      grid-template-rows: subgrid; row-gap: 0; align-self: stretch;
    }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > :is(.vocab-card__sense, .vocab-card__example) > p {
      display: grid; grid-template-rows: subgrid; grid-row: 1 / span 2; grid-column: 2; align-self: stretch;
    }
    .vocab-card-grid > .vocab-card:is(:has(> .ep-word-save), [data-report-useful-expression]) > :is(.vocab-card__sense, .vocab-card__example) > p > span { grid-row: 2; }
  }
}
.ep-word-save--icon { position: relative; margin: 0; display: flex; align-items: center; }
.ep-word-save--icon button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; }
.ep-word-save--icon button:hover { background: #edf3fb; }
.ep-word-save--icon button:focus-visible { outline: 2px solid #426fa9; outline-offset: -3px; }
.ep-word-save--icon button[aria-pressed="true"] path { fill: currentColor; }
.ep-word-save--icon [role="status"]:not(:empty) { position: absolute; right: 0; top: 100%; width: max-content; max-width: min(280px, 65vw); z-index: 2; padding: 8px 12px; border: 1px solid #cad5e4; border-radius: 6px; background: #fbf9f5; box-shadow: 0 4px 14px #243c5e20; font-size: 12px; line-height: 1.5; }
.ep-personal-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 1rem; margin: 1.5rem 0; }
.ep-personal-toolbar label { display: grid; gap: .5rem; flex: 1; min-width: min(16rem, 100%); }
.ep-personal-toolbar input { background: #fbf9f5; padding: .75rem; border: 1px solid #cad5e4; border-radius: 4px; font: inherit; }
.ep-personal-toolbar > span { align-self: center; color: #65738a; font-size: .85rem; }
.ep-personal-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.ep-personal-card, .ep-personal-empty { padding: 1.5rem; background: #fbf9f5; border: 1px solid #d6dfeb; border-top: 3px solid #819cb2; border-radius: 6px; }
.ep-personal-card-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.ep-personal-card h2 { font-size: 1.5rem; margin: 0 0 .3rem; overflow-wrap: anywhere; }
.ep-personal-card-heading span { color: #68768d; font-size: .85rem; }
.ep-personal-card-heading button, [data-personal-action="retry"] { background: transparent; border: 0; color: #65738a; padding: .5rem; cursor: pointer; white-space: nowrap; font: inherit; font-size: .85rem; }
.ep-personal-meaning { white-space: pre-line; line-height: 1.65; }
.ep-personal-card summary { color: #486487; cursor: pointer; }
.ep-personal-card blockquote { margin: 1rem 0 .5rem; line-height: 1.7; }
.ep-personal-card [role="status"]:empty { display: none; }
.ep-wordbook-card__footer:has(> .ep-word-save) { flex-direction: column; align-items: stretch; gap: 1rem; }
.ep-wordbook-card__footer > .ep-word-save { margin: 0; }
.ep-wordbook-pattern, .ep-wordbook-collocations { color: #527172; line-height: 1.6; }
.ep-wordbook-word h2 { overflow-wrap: anywhere; }
.ep-topic-sections { list-style: decimal-leading-zero; padding-left: 2rem; margin: 1.5rem 0; }
.ep-topic-sections li { padding: .8rem .4rem; border-bottom: 1px solid #e3e9f1; }
.ep-topic-sections li::marker { color: #8699af; font-size: .8rem; }
.ep-topic-sections small { float: right; color: #798ba1; }
.ep-topic-book .ep-book-settings-panel > p { line-height: 1.8; }
@media (max-width: 700px) { .ep-personal-list { grid-template-columns: 1fr; } .ep-personal-card { padding: 1.1rem; } }
@media print { .ep-word-save { display: none !important; } }
