/* ============================================================
   词小龙 V3 — UI 组件样式
   Toast / Modal / Pagination / SearchBar / BatchBar / InlineError
   ============================================================ */

/* === Toast 通知 === */
.toast-container {
    position: fixed;
    top: 72px;
    right: 24px;
    z-index: 200;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 380px;
    pointer-events: none;
}

.toast {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 16px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    pointer-events: auto;
    animation: toast-in 0.25s ease;
    font-size: 14px;
    line-height: 1.5;
}

.toast--success {
    border-left: 3px solid var(--brand);
}

.toast--error {
    border-left: 3px solid var(--danger);
}

.toast--warning {
    border-left: 3px solid var(--gold);
}

.toast__icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 1px;
}

.toast--success .toast__icon { color: var(--brand); }
.toast--error .toast__icon { color: var(--danger); }
.toast--warning .toast__icon { color: var(--gold); }

.toast__message {
    flex: 1;
    min-width: 0;
    color: var(--ink);
}

.toast__close {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
}

.toast__close:hover {
    background: var(--surface-soft);
}

.toast--dismissing {
    animation: toast-out 0.2s ease forwards;
}

@keyframes toast-in {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes toast-out {
    from { opacity: 1; transform: translateX(0); }
    to { opacity: 0; transform: translateX(20px); }
}

/* === 模态框 === */
.modal-overlay.is-hidden {
    display: none !important;
}

.modal-overlay {
    inset: 0;
    z-index: 300;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: modal-fade-in 0.15s ease;
}

.modal-overlay[hidden] {
    display: none;
}

.modal-dialog {
    background: var(--surface);
    border-radius: var(--radius);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
    width: min(480px, calc(100vw - 32px));
    max-height: calc(100vh - 64px);
    display: flex;
    flex-direction: column;
    animation: modal-slide-in 0.2s ease;
}

.modal-dialog__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px 0;
}

.modal-dialog__header h3 {
    font-size: 18px;
    font-weight: 600;
    margin: 0;
}

.modal-dialog__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--muted);
    cursor: pointer;
    font-size: 18px;
}

.modal-dialog__close:hover {
    background: var(--surface-soft);
    color: var(--ink);
}

.modal-dialog__body {
    padding: 16px 24px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--ink);
    overflow-y: auto;
}

.modal-dialog__footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 24px 20px;
}

.modal-dialog__footer .primary-button {
    min-width: 80px;
}

.modal-dialog__footer .secondary-button {
    min-width: 80px;
}

.modal-dialog--danger .modal-dialog__header {
    border-bottom: 2px solid var(--danger-soft);
}

@keyframes modal-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes modal-slide-in {
    from { opacity: 0; transform: translateY(-12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 767px) {
    .modal-dialog {
        width: calc(100vw - 24px);
        margin: 12px;
        border-radius: 12px;
    }
}

/* === 分页 === */
.pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    flex-wrap: wrap;
}

.pagination__info {
    font-size: 13px;
    color: var(--muted);
}

.pagination__summary {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.pagination__size {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
}

.pagination__size select {
    min-height: 34px;
    padding: 0 28px 0 9px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    color: var(--ink);
    background: var(--surface);
    font: inherit;
}

.pagination__pages {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pagination__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--ink);
    font-size: 13px;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
}

.pagination__btn:hover {
    background: var(--surface-soft);
    border-color: var(--brand);
}

.pagination__btn.is-active {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
    font-weight: 600;
}

.pagination__ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    font-size: 13px;
    color: var(--muted);
}

@media (max-width: 767px) {
    .pagination {
        flex-direction: column;
        align-items: flex-start;
    }

    .pagination__pages {
        max-width: 100%;
        overflow-x: auto;
        padding-bottom: 2px;
    }
}

/* === 搜索栏 === */
.search-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 0;
    flex-wrap: wrap;
}

.search-bar__input-wrap {
    position: relative;
    flex: 1;
    min-width: 200px;
}

.search-bar__icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted);
    pointer-events: none;
}

.search-bar__input {
    width: 100%;
    height: 40px;
    padding: 0 12px 0 32px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    font-size: 14px;
    color: var(--ink);
    transition: border-color 0.15s;
}

.search-bar__input:focus {
    border-color: var(--brand);
    outline: none;
    box-shadow: 0 0 0 3px var(--brand-soft);
}

.search-bar__filter {
    height: 40px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    font-size: 14px;
    color: var(--ink);
    min-width: 100px;
}

/* === 批量操作栏 === */
.batch-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    background: var(--brand-soft);
    border: 1px solid var(--brand);
    border-radius: var(--radius);
    margin-bottom: 12px;
}

.batch-bar[hidden] {
    display: none;
}

.batch-bar__count {
    font-size: 13px;
    color: var(--brand-dark);
}

.batch-bar__count strong {
    font-weight: 700;
}

.batch-bar__form {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* === 内联表单验证 === */
.field-error {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--danger);
    line-height: 1.4;
}

input.is-invalid,
select.is-invalid,
textarea.is-invalid {
    border-color: var(--danger) !important;
}

input.is-invalid:focus,
select.is-invalid:focus,
textarea.is-invalid:focus {
    box-shadow: 0 0 0 3px var(--danger-soft) !important;
}

/* === Loading 状态 === */
.primary-button.is-loading,
.secondary-button.is-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}

.primary-button.is-loading::after,
.secondary-button.is-loading::after {
    content: '';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin: auto;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
    color: var(--surface);
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* === 管理员个人权限 === */
.admin-permission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 14px;
}

@media (max-width: 700px) {
    .admin-permission-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Student services and premium self-study */
.profile-facts { display:grid; grid-template-columns:minmax(88px,auto) minmax(0,1fr); gap:8px 16px; margin:0; font-size:14px; }
.profile-facts dt { color:var(--muted); }
.profile-facts dd { min-width:0; margin:0; overflow-wrap:anywhere; }
.profile-edit-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.profile-edit-actions .primary-button,.profile-edit-actions .secondary-button { width:auto; min-height:40px; margin:0; }
.section-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; flex-wrap:wrap; }
.admin-title-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.admin-title-actions .primary-button { width:auto; min-height:40px; margin:0; white-space:nowrap; }
.teacher-rate-form { margin-top:12px; padding-top:12px; display:grid; gap:10px; border-top:1px solid var(--line); }
.teacher-rate-form label { display:grid; gap:6px; color:var(--muted); font-size:12px; font-weight:700; }
.teacher-rate-form input { width:100%; min-width:0; }
.service-account-facts,
.premium-report-summary,
.premium-overview-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:0 0 16px; padding:1px; background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.premium-report-summary { grid-template-columns:repeat(6,minmax(0,1fr)); }
.service-account-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
.service-account-facts div,.premium-report-summary div,.premium-overview-strip div { padding:12px; background:var(--surface); }
.service-account-facts dt,.premium-report-summary span,.premium-overview-strip span { display:block; margin-bottom:4px; color:var(--muted); font-size:12px; }
.service-account-facts dd { margin:0; font-size:14px; font-weight:600; }
.premium-report-summary strong,.premium-overview-strip strong { display:block; font-size:20px; line-height:1.25; }
.service-adjust-form { display:grid; grid-template-columns:1.1fr .7fr; gap:10px; align-items:end; }
.service-adjust-form__note { grid-column:1/-1; }
.service-adjust-form__help { grid-column:1/-1; margin:0; }
.service-adjust-form__actions { grid-column:1/-1; }
.service-adjust-form .primary-button { justify-self:start; }
.service-ledger-list { margin-top:16px; border-top:1px solid var(--line); }
.service-ledger-list>div { display:grid; grid-template-columns:84px minmax(0,1fr) auto; gap:10px; align-items:start; padding:9px 0; border-bottom:1px solid var(--line); font-size:12px; }
.service-ledger-list span { color:var(--muted); }
.service-ledger-list strong { font-weight:500; overflow-wrap:anywhere; }
.service-ledger-list em { color:var(--ink); font-style:normal; font-variant-numeric:tabular-nums; }
.service-settings-form { display:grid; gap:14px; }
.service-settings-form label { display:grid; grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr); gap:18px; align-items:center; }
.service-rule-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; }
.service-rule-facts div { min-width:0; padding:16px; border:1px solid var(--line); border-radius:6px; background:var(--surface-soft); }
.service-rule-facts dt { margin-bottom:8px; color:var(--muted); font-size:12px; }
.service-rule-facts dd { margin:0; color:var(--ink); font-size:20px; font-weight:700; overflow-wrap:anywhere; }
.service-rule-facts small { color:var(--muted); font-size:12px; font-weight:500; }
.service-rule-meta { margin:14px 0 0; color:var(--muted); font-size:12px; }
.input-with-unit { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; }
.input-with-unit em { min-width:52px; color:var(--muted); font-size:13px; font-style:normal; }
.service-balance-band { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.service-balance-band span,.service-balance-band small { display:block; color:var(--muted); }
.service-balance-band strong { display:block; margin:4px 0; font-size:30px; line-height:1.15; }
.service-balance-band p { max-width:420px; margin:0; color:var(--muted); font-size:13px; text-align:right; }
.service-product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0; }
.service-product { padding:20px; border:1px solid var(--line); border-radius:7px; background:var(--surface); }
.service-product h2 { margin:5px 0 14px; font-size:18px; }
.service-product>strong { display:block; margin-bottom:6px; font-size:22px; }
.service-product p,.service-product>span:last-child { color:var(--muted); font-size:13px; line-height:1.7; }
.service-product__actions { display:flex; gap:12px; align-items:center; margin-top:14px; }
.service-product__actions small { color:var(--muted); }
.premium-setup-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:18px; margin-top:18px; align-items:start; }
.premium-links { display:grid; gap:10px; }
.premium-links a { display:block; padding:18px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ink); text-decoration:none; }
.premium-links a:hover { border-color:var(--brand); }
.premium-links strong,.premium-links span { display:block; }
.premium-links span { margin-top:4px; color:var(--muted); font-size:13px; }
.premium-study-start-button { display:block; margin-right:auto; margin-left:auto; }
.premium-notebook-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.premium-notebook-actions form { margin:0; }
.premium-notebook-actions .primary-button,.premium-notebook-actions .secondary-button { white-space:nowrap; }
.premium-review-panel { display:grid; gap:16px; margin:0 0 16px; padding:18px; border:1px solid var(--line); border-top:3px solid var(--brand); border-radius:7px; background:var(--surface-soft); }
.premium-review-panel__intro h2 { margin:4px 0 0; font-size:21px; line-height:1.25; }
.premium-review-panel__intro p { max-width:780px; margin:6px 0 0; color:var(--muted); font-size:12px; line-height:1.6; }
.premium-review-form { display:grid; gap:12px; margin:0; }
.premium-review-form__settings { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.premium-review-form__settings label { display:grid; grid-template-columns:auto 110px; align-items:center; gap:8px; color:var(--muted); font-size:12px; font-weight:700; }
.premium-review-form__settings select { min-height:40px; }
.premium-review-form__settings span { color:var(--muted); font-size:12px; }
.premium-review-form__settings strong { margin-left:5px; color:var(--ink); }
.premium-review-quick { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.premium-review-quick__button { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; align-items:center; min-width:0; min-height:78px; padding:12px 13px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); text-align:left; cursor:pointer; transition:border-color .16s ease, background-color .16s ease, transform .16s ease; }
.premium-review-quick__button:hover { border-color:var(--brand); background:var(--brand-soft); transform:translateY(-1px); }
.premium-review-quick__button:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.premium-review-quick__button.is-current { border-color:var(--brand); box-shadow:inset 0 0 0 1px var(--brand); }
.premium-review-quick__button:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.premium-review-quick__button span { min-width:0; overflow-wrap:anywhere; font-size:13px; font-weight:700; }
.premium-review-quick__button strong { color:var(--brand); font-size:22px; line-height:1; font-variant-numeric:tabular-nums; }
.premium-review-quick__button small { grid-column:1 / -1; margin-top:8px; color:var(--muted); font-size:11px; }
.premium-word-filter-panel .word-filter-controls { grid-template-columns:minmax(150px,.55fr) minmax(210px,.72fr) minmax(240px,1fr) auto auto; }
.word-filter-panel { margin:0 0 18px; padding:18px; border:1px solid var(--line); border-radius:7px; background:var(--surface-soft); }
.word-filter-panel__heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:14px; }
.word-filter-panel__heading h2 { margin:4px 0 0; font-size:18px; }
.word-filter-panel__heading > span { color:var(--muted); font-size:12px; }
.word-filter-form { display:grid; gap:14px; }
.word-filter-status { display:flex; flex-wrap:wrap; gap:7px; }
.word-filter-chip { position:relative; display:inline-flex; cursor:pointer; }
.word-filter-chip input { position:absolute; width:1px; height:1px; opacity:0; }
.word-filter-chip span { display:inline-flex; align-items:center; min-height:36px; padding:0 13px; border:1px solid var(--line); border-radius:5px; background:var(--surface); color:var(--ink); font-size:12px; font-weight:700; }
.word-filter-chip input:focus-visible + span { outline:2px solid var(--brand); outline-offset:2px; }
.word-filter-chip input:checked + span { border-color:var(--brand); background:var(--brand-soft); color:var(--brand); }
.word-filter-controls { display:grid; grid-template-columns:minmax(210px,.72fr) minmax(240px,1fr) auto auto; align-items:end; gap:10px; }
.word-filter-field { display:grid; gap:5px; min-width:0; }
.word-filter-label { color:var(--muted); font-size:11px; font-weight:700; }
.word-filter-controls > .word-filter-field > select,
.word-filter-controls > .word-filter-field > input[type="search"],
.word-filter-controls > .word-textbook-picker .word-textbook-trigger { width:100%; height:44px; min-height:44px; padding:0 12px; border:1px solid var(--line); border-radius:5px; outline:0; color:var(--ink); background:var(--surface); font:inherit; font-size:14px; }
.word-filter-controls > .word-filter-field > select:focus,
.word-filter-controls > .word-filter-field > input[type="search"]:focus,
.word-filter-controls > .word-textbook-picker .word-textbook-trigger:focus-visible,
.word-filter-controls > .word-textbook-picker .word-textbook-trigger[aria-expanded="true"] { border-color:var(--brand); box-shadow:0 0 0 3px rgba(23, 107, 84, .12); }
.word-filter-search input { width:100%; }
.word-textbook-picker { position:relative; }
.word-textbook-trigger { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:44px; padding:0 12px; border:1px solid var(--line); border-radius:5px; background:var(--surface); color:var(--ink); text-align:left; cursor:pointer; }
.word-textbook-trigger:hover,.word-textbook-trigger[aria-expanded="true"] { border-color:var(--brand); }
.word-textbook-trigger__hint { flex:0 0 auto; color:var(--muted); font-size:11px; }
.word-textbook-menu { position:absolute; z-index:20; top:calc(100% + 6px); left:0; right:0; padding:10px; border:1px solid var(--line); border-radius:6px; background:var(--surface); box-shadow:0 12px 28px rgba(38, 31, 24, .16); }
.word-textbook-search { display:block; margin-bottom:8px; }
.word-textbook-search input { width:100%; }
.word-textbook-options { display:grid; max-height:230px; overflow:auto; }
.word-textbook-option { display:block; width:100%; padding:9px 10px; border:0; border-radius:4px; background:transparent; color:var(--ink); text-align:left; cursor:pointer; }
.word-textbook-option:hover,.word-textbook-option.is-selected { background:var(--brand-soft); color:var(--brand); }
.textbook-picker-field { position:relative; display:grid; gap:6px; min-width:0; margin-top:14px; }
.textbook-picker-field__label { color:#354b44; font-size:13px; font-weight:700; }
.textbook-picker__native { width:100%; min-height:44px; }
.textbook-picker-field.is-enhanced .textbook-picker__native { position:absolute; width:1px; height:1px; min-height:1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.textbook-picker__trigger { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:48px; padding:8px 12px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); text-align:left; cursor:pointer; }
.textbook-picker__trigger:hover,.textbook-picker__trigger[aria-expanded="true"] { border-color:var(--brand); }
.textbook-picker__trigger:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.textbook-picker__trigger>span:first-child { display:grid; min-width:0; gap:2px; }
.textbook-picker__trigger strong,.textbook-picker__trigger small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.textbook-picker__trigger strong { font-size:14px; }
.textbook-picker__trigger small { color:var(--muted); font-size:11px; font-weight:500; }
.textbook-picker__chevron { flex:0 0 auto; color:var(--muted); font-size:18px; }
.textbook-picker__menu { position:absolute; z-index:40; top:calc(100% + 6px); left:0; right:0; padding:10px; border:1px solid var(--line); border-radius:7px; background:var(--surface); box-shadow:0 16px 36px rgba(38,31,24,.18); }
.textbook-picker__search { display:block; }
.textbook-picker__search input { width:100%; min-height:44px; padding:0 11px; border:1px solid var(--line); border-radius:5px; color:var(--ink); background:var(--surface); font:inherit; }
.textbook-picker__groups { max-height:340px; margin-top:8px; overflow:auto; overscroll-behavior:contain; }
.textbook-picker__group { padding:4px 0 8px; }
.textbook-picker__group+ .textbook-picker__group { border-top:1px solid var(--line); }
.textbook-picker__group h3 { margin:5px 9px; color:var(--muted); font-size:11px; font-weight:700; }
.textbook-picker__option { display:grid; gap:3px; width:100%; min-height:48px; padding:8px 9px; border:0; border-radius:5px; background:transparent; color:var(--ink); text-align:left; cursor:pointer; }
.textbook-picker__option:hover,.textbook-picker__option.is-selected { background:var(--brand-soft); color:var(--brand); }
.textbook-picker__option:focus-visible { outline:2px solid var(--brand); outline-offset:-2px; }
.textbook-picker__option strong { font-size:13px; line-height:1.35; }
.textbook-picker__option small { color:var(--muted); font-size:11px; line-height:1.35; }
.textbook-picker__empty { margin:12px; color:var(--muted); font-size:13px; text-align:center; }
.word-filter-controls > .primary-button,.word-filter-controls > .secondary-button { min-height:44px; margin-top:0; padding:0 16px; border-radius:5px; white-space:nowrap; }
.word-filter-active { display:flex; flex-wrap:wrap; align-items:center; gap:7px; color:var(--muted); font-size:12px; }
.word-filter-active__tag { display:inline-flex; align-items:center; min-height:27px; padding:0 9px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--ink); }
.word-filter-note { margin:0; color:var(--muted); font-size:12px; }
.premium-word-list { display:grid; }
.premium-word-list article { display:grid; grid-template-columns:minmax(170px,.75fr) minmax(0,1.8fr) auto; gap:18px; align-items:center; padding:14px 4px; border-bottom:1px solid var(--line); }
.premium-word-list article>div strong,.premium-word-list article>div span { display:block; }
.premium-word-list article>div strong { font-size:17px; }
.premium-word-list article>div span { margin-top:3px; color:var(--muted); font-size:12px; }
.premium-word-list p { margin:0; line-height:1.6; }
.premium-word-list em { font-style:normal; }
.premium-word-list .status-badge { display:inline-flex; justify-self:end; padding:4px 8px; border:1px solid var(--line); border-radius:5px; font-size:12px; }
.premium-word-list .status-badge--unknown { color:var(--danger); }
.premium-word-list .status-badge--hesitant { color:#916315; }
.premium-word-list .status-badge--skilled { color:var(--success); }
.premium-report-list { display:grid; gap:10px; }
.premium-report-list>a { display:grid; grid-template-columns:minmax(200px,1fr) minmax(420px,1.4fr) auto; gap:20px; align-items:center; padding:16px 18px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ink); text-decoration:none; }
.premium-report-list>a:hover { border-color:var(--brand); }
.premium-report-list span,.premium-report-list strong { display:block; }
.premium-report-list span { color:var(--muted); font-size:12px; }
.premium-report-list dl { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; margin:0; }
.premium-report-list dl div { display:flex; gap:6px; }
.premium-report-list dt { color:var(--muted); }
.premium-report-list dd { margin:0; font-weight:600; }
.premium-report-list em { color:var(--brand); font-size:13px; font-style:normal; }
.report-guidance { margin:0 0 16px; line-height:1.8; }
.premium-report-actions { display:flex; align-items:stretch; gap:8px; flex-wrap:wrap; }
.premium-report-actions .primary-button,.premium-report-actions .secondary-button { min-width:148px; min-height:44px; margin:0; display:inline-flex; align-items:center; justify-content:center; text-align:center; text-decoration:none; }
.premium-reports-start-button { min-height:44px; margin:0; display:inline-flex; align-items:center; justify-content:center; text-align:center; text-decoration:none; white-space:nowrap; }
@media (max-width:760px) {
    .service-account-facts,.premium-overview-strip,.premium-report-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .service-adjust-form,.service-settings-form label,.service-rule-facts,.service-product-grid,.premium-setup-grid { grid-template-columns:1fr; }
    .profile-edit-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .profile-edit-actions .primary-button,.profile-edit-actions .secondary-button { width:100%; justify-content:center; }
    .admin-title-actions { width:100%; align-items:stretch; flex-direction:column; }
    .admin-title-actions .primary-button { width:100%; justify-content:center; }
    .service-balance-band { align-items:flex-start; flex-direction:column; }
    .service-balance-band p { text-align:left; }
    .premium-notebook-actions { width:100%; justify-content:flex-start; }
    .premium-review-panel { padding:16px 14px; }
    .premium-review-form { width:100%; }
    .premium-review-form__settings { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:end; }
    .premium-review-form__settings label { grid-template-columns:1fr; gap:5px; }
    .premium-review-form__settings label select { width:100%; }
    .premium-review-quick { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .premium-review-quick__button { min-height:72px; padding:11px 12px; }
    .premium-word-filter-panel .word-filter-controls { grid-template-columns:1fr; }
    .premium-word-list article,.premium-report-list>a { grid-template-columns:1fr; gap:8px; }
    .premium-report-list dl { width:100%; max-width:none; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
    .word-filter-panel { padding:14px; }
    .word-filter-panel__heading { align-items:flex-start; flex-direction:column; gap:5px; }
    .word-filter-status { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .word-filter-chip span { width:100%; justify-content:center; padding:0 8px; }
    .word-filter-controls { grid-template-columns:1fr; }
    .word-filter-controls > .primary-button,.word-filter-controls > .secondary-button { width:100%; justify-content:center; }
    .word-textbook-menu { left:0; right:0; }
    .textbook-picker__groups { max-height:min(48vh,340px); }
}
@media (max-width:767px) {
    .premium-report-actions { display:grid; grid-template-columns:minmax(0,1fr); }
    .premium-report-actions .primary-button,.premium-report-actions .secondary-button { width:100%; min-width:0; }
    .premium-reports-start-button { width:100%; margin-top:16px; }
}
