/* ==================================================================
 * 朋友圈圖文工具 · 共用樣式（後台 Admin/Moments 五頁 + 公網「道長手記」）
 * 沿用 site 主題變量：--card --card-2 --border --text --muted --accent ...
 * 所有 class 以 .mm- 前綴，避免與全站樣式衝突。
 * ================================================================== */

/* ── 頁面說明 / 步驟流程 ───────────────────────────────────────── */
.mm-intro {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.75;
    margin: -8px 0 18px;
}
.mm-intro a { color: var(--accent); text-decoration: none; }
.mm-intro a:hover { text-decoration: underline; }

.mm-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}
.mm-step {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--card);
    font-size: 12.5px;
    color: var(--muted);
    text-decoration: none;
}
a.mm-step:hover { border-color: var(--accent); }
.mm-step .n {
    width: 21px; height: 21px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--border);
    color: var(--text);
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 800;
}
.mm-step.on { border-color: var(--accent); color: var(--text-accent); }
.mm-step.on .n { background: var(--accent); color: #1b1409; }

/* ── 工具列 ───────────────────────────────────────────────────── */
.mm-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-bottom: 14px;
}
.mm-toolbar form {
    margin: 0;
    display: flex;
    gap: 6px;
    align-items: center;
}
.mm-toolbar input[type=number] { width: 68px; }
.mm-spacer { flex: 1 1 auto; }
.mm-count { font-size: 12px; color: var(--muted); }
.mm-style-field {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--muted);
}
.mm-style-field select { min-width: 150px; }

/* 危險動作按鈕（刪除）：紅調，不喧賓奪主 */
.btn-danger {
    background: rgba(192, 57, 43, .14);
    border-color: rgba(192, 57, 43, .38);
    color: #f1aaa1;
}
.btn-danger:hover {
    background: rgba(192, 57, 43, .22);
    border-color: rgba(232, 168, 159, .65);
    color: #ffd6cf;
    box-shadow: 0 0 0 1px rgba(232, 168, 159, .35), 0 0 14px rgba(192, 57, 43, .22);
}

/* ── 提示 / 說明條 ────────────────────────────────────────────── */
.mm-note {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.7;
    background: rgba(212, 175, 55, .06);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 9px 12px;
    margin-bottom: 14px;
}

.mm-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.mm-stat {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(212, 175, 55, .08), rgba(212, 175, 55, .02));
    padding: 11px 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mm-stat-label {
    font-size: 11px;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: var(--muted);
}

.mm-stat-value {
    font-size: 21px;
    line-height: 1;
    color: var(--text);
    font-variant-numeric: tabular-nums;
}

/* ── 表格（題材庫 / 批量任務）─────────────────────────────────── */
.mm-table-wrap {
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow-x: auto;
    margin-bottom: 14px;
}
.mm-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.mm-table th {
    text-align: left;
    padding: 9px 11px;
    background: rgba(212, 175, 55, .05);
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    font-weight: 700;
    color: var(--accent);
    text-transform: uppercase;
    letter-spacing: .5px;
    white-space: nowrap;
}
.mm-table td {
    padding: 9px 11px;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    vertical-align: middle;
}
.mm-table tbody tr:last-child td { border-bottom: 0; }
.mm-table tbody tr:hover { background: rgba(212, 175, 55, .05); }
.mm-table .ck { width: 40px; text-align: center; }
.mm-table .mm-title { font-weight: 600; }
.mm-table .num { font-variant-numeric: tabular-nums; color: var(--muted); }

.mm-hotspot-meta {
    margin-top: 5px;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.55;
    color: var(--muted);
}

/* ── 標籤（類型 / 配圖模式）───────────────────────────────────── */
.mm-tag {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    background: rgba(127, 127, 127, .14);
    color: var(--muted);
}
.mm-tag.gpt { background: rgba(126, 188, 137, .18); color: #9ed3a8; }
.mm-tag.scene { background: rgba(86, 156, 214, .14); color: #7fb7e6; }
.mm-tag.portrait { background: rgba(212, 175, 55, .15); color: #e0c060; }

/* ── 狀態膠囊 ─────────────────────────────────────────────────── */
.mm-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
}
.mm-pill.pending    { background: rgba(150, 150, 150, .15); color: #b6b6b6; }
.mm-pill.generating { background: rgba(86, 156, 214, .16);  color: #7fb7e6; }
.mm-pill.ready      { background: rgba(106, 168, 79, .20);  color: #9bd07a; }
.mm-pill.rendering  { background: rgba(86, 156, 214, .16);  color: #7fb7e6; }
.mm-pill.text_running { background: rgba(160, 132, 220, .16); color: #b79de6; }
.mm-pill.draft      { background: rgba(212, 175, 55, .16);  color: #e0c060; }
.mm-pill.approved   { background: rgba(111, 168, 160, .18); color: #9ec5be; }
.mm-pill.published  { background: rgba(106, 168, 79, .20);  color: #9bd07a; }
.mm-pill.completed  { background: rgba(106, 168, 79, .20);  color: #9bd07a; }
.mm-pill.rejected   { background: rgba(120, 120, 120, .14); color: #8f8f8f; }
.mm-pill.failed     { background: rgba(192, 57, 43, .17);   color: #e8a89f; }

/* ── 縮圖網格（最近成品）──────────────────────────────────────── */
.mm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 14px;
}
.mm-thumb {
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    background: var(--card);
    transition: border-color var(--transition-fast, .15s),
                transform var(--transition-fast, .15s);
}
.mm-thumb:hover { border-color: var(--accent); transform: translateY(-2px); }
.mm-thumb a { display: block; }
.mm-thumb img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}
.mm-thumb .ph {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(127, 127, 127, .07);
    color: var(--muted);
    font-size: 12px;
}
.mm-thumb .meta {
    padding: 8px 9px;
    font-size: 11.5px;
    color: var(--muted);
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.mm-thumb .meta .t {
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── 發佈頁 ──────────────────────────────────────────────────── */
.mm-publish-shell {
    display: grid;
    gap: 16px;
}

.mm-publish-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}
.mm-publish-summary-mix {
    font-size: 13px;
    line-height: 1.7;
    color: var(--text);
}
.mm-publish-summary-source {
    margin-left: 8px;
    font-size: 11.5px;
    color: var(--muted);
    text-decoration: none;
}
a.mm-publish-summary-source:hover { color: var(--accent); text-decoration: underline; }

.mm-publish-compact-card .admin-card-body,
.mm-publish-queue-compact-card .admin-card-body,
.mm-publish-missing-card .admin-card-body {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mm-compact-mix-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mm-compact-mix-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.mm-compact-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 12px;
    color: var(--muted);
}

.mm-compact-field input { width: 100%; }

.mm-compact-mix-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    font-size: 12px;
    line-height: 1.7;
    color: var(--muted);
}

.mm-queue-compact {
    border: 1px solid var(--border);
    border-radius: 14px;
    background: rgba(255, 255, 255, .03);
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mm-queue-compact-summary {
    font-size: 13px;
    line-height: 1.8;
    color: var(--text);
}

.mm-queue-compact-alert {
    border: 1px solid rgba(214, 83, 79, .32);
    border-radius: 12px;
    background: rgba(214, 83, 79, .10);
    padding: 11px 12px;
    font-size: 12.5px;
    line-height: 1.75;
    color: #ffd6d4;
}

.mm-queue-compact-actions {
    display: flex;
    justify-content: flex-start;
    padding-top: 6px;
    border-top: 1px solid var(--border);
}

.mm-publish-missing-card {
    border-color: rgba(214, 83, 79, .35);
}

.mm-publish-missing-card .admin-card-body {
    background: linear-gradient(180deg, rgba(214, 83, 79, .12), rgba(214, 83, 79, .04));
    border-radius: 12px;
}

.mm-missing-copy {
    font-size: 13px;
    line-height: 1.8;
    color: #ffd6d4;
}

.mm-missing-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.mm-missing-item {
    border: 1px solid rgba(214, 83, 79, .38);
    border-radius: 12px;
    background: rgba(214, 83, 79, .10);
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mm-missing-item strong {
    font-size: 13px;
    line-height: 1.5;
    color: #ffd6d4;
}

.mm-missing-item span {
    font-size: 12px;
    line-height: 1.7;
    color: #ffb8b4;
}

/* ── 系列分類膠囊（紅塵 / 方外 / 經典 / 其他）───────────────── */
.mm-series-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}

.mm-series-pill.worldly { border-color: rgba(212, 175, 55, .24); background: rgba(212, 175, 55, .14); color: #f0d36f; }
.mm-series-pill.hermit  { border-color: rgba(111, 178, 127, .24); background: rgba(111, 178, 127, .14); color: #9cd8a8; }
.mm-series-pill.classic { border-color: rgba(108, 154, 218, .24); background: rgba(108, 154, 218, .14); color: #a8c9ff; }
.mm-series-pill.other   { border-color: rgba(140, 140, 140, .24); background: rgba(140, 140, 140, .14); color: #d7d7d7; }

/* ── 發佈隊列卡片 ────────────────────────────────────────────── */
.mm-queue {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mm-queue-card {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 16px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--card);
    overflow: hidden;
}

.mm-queue-card.scene { box-shadow: inset 4px 0 0 rgba(86, 156, 214, .45); }
.mm-queue-card.portrait { box-shadow: inset 4px 0 0 rgba(212, 175, 55, .45); }

.mm-queue-media img {
    width: 100%;
    height: 100%;
    min-height: 220px;
    object-fit: cover;
    display: block;
}

.mm-queue-media .ph {
    width: 100%;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--border);
    background: rgba(127, 127, 127, .07);
    color: var(--muted);
    font-size: 13px;
    height: 100%;
}

.mm-queue-body {
    padding: 14px 16px 16px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mm-queue-top {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.mm-queue-rank {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: rgba(212, 175, 55, .12);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 800;
}

.mm-queue-title {
    font-size: 18px;
    line-height: 1.35;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 6px;
}

.mm-queue-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
    font-size: 12px;
    line-height: 1.6;
    color: var(--muted);
}

.mm-queue-text {
    font-size: 13px;
    line-height: 1.8;
    color: var(--text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mm-queue-warning {
    color: #e8a89f;
    font-size: 12px;
    line-height: 1.65;
}

.mm-queue-card.is-mismatch-start { border-color: rgba(232, 168, 159, .55); }
.mm-queue-card.is-degraded { background: rgba(255, 255, 255, .018); }

.mm-queue-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}
.mm-queue-row-actions form { margin: 0; }

/* 已發布卡片網格（Publish 頁底部） */
.mm-published-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 14px;
}
.mm-published-card {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--card);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.mm-published-media {
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: rgba(127, 127, 127, .07);
}
.mm-published-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.mm-published-media.ph {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-size: 12px;
}
.mm-published-body {
    padding: 9px 11px 11px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.mm-published-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mm-published-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    font-size: 11.5px;
    color: var(--muted);
}
.mm-published-body form { margin: 4px 0 0; }
.mm-published-body .btn { width: 100%; font-size: 11.5px; padding: 5px 8px; min-height: auto; }

/* ── 審核列表 ─────────────────────────────────────────────────── */
.mm-review { display: flex; flex-direction: column; }
.mm-rev-row {
    display: flex;
    gap: 18px;
    padding: 18px 0;
    border-bottom: 1px solid var(--border);
    transition: opacity var(--transition-fast, .15s), filter var(--transition-fast, .15s);
}
.mm-rev-row:first-child { padding-top: 4px; }
.mm-rev-row:last-child { border-bottom: 0; padding-bottom: 4px; }
.mm-rev-row.is-busy {
    opacity: .58;
    filter: saturate(.8);
}
.mm-rev-imgs {
    flex: 0 0 320px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-self: flex-start;
}
.mm-image-option {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: rgba(255, 255, 255, .025);
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
.mm-image-option.selected {
    border-color: var(--accent);
    background: rgba(212, 175, 55, .07);
}
.mm-image-top {
    min-height: 24px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
.mm-image-preview { display: block; }
.mm-image-preview img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--border);
    display: block;
}
.mm-rev-ph {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
    background: rgba(127, 127, 127, .07);
    border: 1px dashed var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-size: 13px;
    text-align: center;
    padding: 10px;
}
.mm-image-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.mm-image-actions form { margin: 0; }
.mm-image-actions .btn {
    min-height: 30px;
    padding: 5px 9px;
    font-size: 11.5px;
}
.mm-image-error {
    color: #e8a89f;
    font-size: 11.5px;
    line-height: 1.55;
    max-height: 58px;
    overflow: auto;
}
.mm-rev-body { flex: 1 1 0; min-width: 0; }
.mm-rev-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 13px;
}
.mm-rev-head .id { font-weight: 800; color: var(--text-accent); }
.mm-rev-head .meta { color: var(--muted); font-size: 12px; }
.mm-rev-text {
    white-space: pre-wrap;
    font-family: var(--font-taoist, serif);
    font-size: 14px;
    line-height: 1.85;
    color: var(--text);
    margin: 10px 0;
    max-height: 240px;
    overflow-y: auto;
}
.mm-rev-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
}
.mm-rev-actions form { margin: 0; }
.mm-rev-row.is-busy .mm-rev-actions,
.mm-rev-row.is-busy .mm-rev-imgs,
.mm-rev-row.is-busy .mm-rev-text {
    pointer-events: none;
}

/* ── 進度條（批量任務）───────────────────────────────────────── */
.mm-prog {
    height: 7px;
    width: 110px;
    background: var(--border);
    border-radius: 4px;
    overflow: hidden;
    display: inline-block;
    vertical-align: middle;
}
.mm-prog > i {
    display: block;
    height: 100%;
    background: var(--accent);
    border-radius: 4px;
    transition: width var(--transition-normal, .25s);
}
.mm-prog-label {
    font-size: 11.5px;
    color: var(--muted);
    margin-left: 7px;
    font-variant-numeric: tabular-nums;
}

/* ── 空狀態 ───────────────────────────────────────────────────── */
.mm-empty {
    text-align: center;
    color: var(--muted);
    padding: 44px 16px;
    font-size: 14px;
}
.mm-empty .ico { font-size: 30px; opacity: .5; display: block; margin-bottom: 8px; }

/* ── 設定頁 · 圖片 API / 參考照 ──────────────────────────────── */
.mm-provider-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr)) auto;
    gap: 10px;
    align-items: stretch;
}
.mm-prompt-style-form { margin-bottom: 14px; }
.mm-provider-choice {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 11px 12px;
    background: rgba(255, 255, 255, .025);
    cursor: pointer;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
        "radio name"
        "radio desc";
    gap: 3px 9px;
}
.mm-provider-choice.on {
    border-color: var(--accent);
    background: rgba(212, 175, 55, .07);
}
.mm-provider-choice input { grid-area: radio; margin-top: 3px; }
.mm-provider-choice .name { grid-area: name; font-weight: 800; color: var(--text); }
.mm-provider-choice .desc { grid-area: desc; font-size: 12px; line-height: 1.55; color: var(--muted); }
.mm-provider-form .btn { align-self: stretch; }

.mm-photo-box { display: flex; flex-wrap: wrap; gap: 22px; align-items: flex-start; }
.mm-photo {
    max-width: 280px;
    border-radius: 12px;
    border: 1px solid var(--border);
    display: block;
}
.mm-photo-ph {
    width: 200px;
    aspect-ratio: 3 / 4;
    border-radius: 12px;
    border: 1px dashed var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-size: 13px;
    text-align: center;
    padding: 12px;
}
.mm-upload { flex: 1 1 260px; }

/* 設定頁 · 模型橫條 + 配比表 */
.mm-model-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 8px 0 14px;
    border-bottom: 1px dashed var(--border);
    margin-bottom: 14px;
    font-size: 13px;
    color: var(--text);
}
.mm-model-label {
    font-weight: 700;
    min-width: 72px;
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .4px;
}
.mm-model-note { font-size: 12px; color: var(--muted); }

.mm-mix-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.mm-mix-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.mm-mix-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    font-size: 12px;
    line-height: 1.7;
    color: var(--muted);
}
.mm-upload input[type=file] {
    display: block;
    margin: 10px 0 14px;
    font-size: 13px;
    color: var(--text);
}

/* ── 公網「道長手記」畫廊 ────────────────────────────────────── */
.mm-gallery-wrap {
    max-width: 1080px;
    margin: 0 auto;
    padding: 40px 18px 72px;
}
.mm-gallery-head { text-align: center; margin-bottom: 36px; }
.mm-gallery-head h1 {
    font-family: var(--font-taoist, serif);
    font-size: 30px;
    letter-spacing: .14em;
    color: var(--accent);
    margin: 0 0 10px;
}
.mm-gallery-head .sub {
    color: var(--muted);
    font-size: 13.5px;
    letter-spacing: .05em;
}
.mm-gallery-head .rule {
    width: 54px;
    height: 2px;
    margin: 16px auto 0;
    background: var(--accent);
    opacity: .55;
}
.mm-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(248px, 1fr));
    gap: 20px;
}
.mm-gallery-item {
    position: relative;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    background: var(--card);
    transition: transform var(--transition-normal, .25s),
                box-shadow var(--transition-normal, .25s),
                border-color var(--transition-normal, .25s);
}
.mm-gallery-item:hover {
    transform: translateY(-4px);
    border-color: var(--accent);
    box-shadow: var(--shadow-lg, 0 8px 32px rgba(0, 0, 0, .5));
}
.mm-gallery-item img {
    width: 100%;
    display: block;
}
.mm-gallery-item .cap {
    padding: 9px 12px;
    font-size: 12px;
    color: var(--muted);
    display: flex;
    justify-content: space-between;
    gap: 8px;
}
.mm-gallery-empty {
    text-align: center;
    color: var(--muted);
    padding: 72px 16px;
    font-size: 15px;
    letter-spacing: .05em;
}

/* SuperAdmin overlay: 公網「道長手記」右上角浮動刪除鍵 */
.mm-gallery-item { position: relative; }
.mm-gallery-admin {
    position: absolute;
    top: 8px;
    right: 8px;
    margin: 0;
    opacity: 0;
    transition: opacity .15s ease;
}
.mm-gallery-item:hover .mm-gallery-admin,
.mm-gallery-admin:focus-within { opacity: 1; }
.mm-gallery-admin .btn {
    min-height: auto;
    padding: 4px 8px;
    font-size: 13px;
    line-height: 1;
    background: rgba(0, 0, 0, .55);
    backdrop-filter: blur(4px);
}
.mm-gallery-admin .btn:hover {
    background: rgba(192, 57, 43, .85);
    color: #fff;
}

/* ── 響應式 ───────────────────────────────────────────────────── */
@media (max-width: 720px) {
    .mm-compact-mix-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mm-queue-card {
        grid-template-columns: 1fr;
    }

    .mm-queue-media img,
    .mm-queue-media .ph {
        min-height: 0;
        aspect-ratio: 1 / 1;
    }

    .mm-queue-body {
        padding: 0 14px 14px;
    }

    .mm-queue-top {
        grid-template-columns: 1fr;
    }

    .mm-queue-rank {
        width: 48px;
        height: 48px;
        font-size: 20px;
    }

    .mm-rev-row { flex-direction: column; gap: 12px; }
    .mm-rev-imgs { flex-basis: auto; width: 100%; }
    .mm-provider-form { grid-template-columns: 1fr; }
    .mm-provider-form .btn { justify-self: stretch; }
    .mm-step { flex: 1 1 100%; }
}
