.article-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex: 0 0 auto; }
.article-actions-host { position: relative; }
.article-actions-host > .article-actions { position: absolute; top: 0; right: 0; z-index: 2; }
body .article-actions > button {
    display: inline-grid; place-items: center; box-sizing: border-box;
    width: 44px; height: 44px; min-height: 44px; padding: 10px;
    border: 1px solid var(--theme-border, #cbd5e1); border-radius: 12px;
    background: var(--theme-surface, #fff); color: var(--theme-fg-purple, #6d28d9);
    cursor: pointer; box-shadow: 0 1px 4px #1118270d;
    transition: transform 160ms ease-out, opacity 160ms ease-out;
}
body .article-actions > .article-save-button { color: #dc2626; }
.article-actions svg { display: block; width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.article-save-button[aria-pressed="true"] svg { fill: currentColor; }
.article-actions > button:disabled { cursor: wait; opacity: .65; }
.article-actions > button:focus-visible,
.article-action-dialog :is(button,a,input):focus-visible { outline: 3px solid #a78bfa; outline-offset: 3px; }
.article-actions > button:active:not(:disabled),.article-action-dialog :is(button,a):active { transform: scale(.985); opacity: .9; }
@media (hover: hover) {
    .article-actions > button:hover:not(:disabled),.article-action-dialog :is(button,a):hover { transform: translateY(-2px); }
}
.news-feed .news-card.article-actions-host,.news-native .news-card.article-actions-host { padding-top: 54px; }
.news-feed :is(.news-card-lead,.news-card-supporting).news-card-illustrated.article-actions-host { padding-top: 0; }
.news-feed :is(.news-card-lead,.news-card-supporting).news-card-illustrated > .article-actions { top: 8px; right: 8px; }
.news-article .story-reader-page-header.article-actions-host { padding-top: 54px; }
.blog-article-shell.article-actions-host > .blog-article-actions { min-height: 44px; padding-right: 100px; }
.article-action-dialog {
    position: fixed; inset: 0; width: min(480px, calc(100vw - 32px)); max-height: calc(100dvh - 32px);
    margin: auto; padding: 0; overflow: auto; border: 1px solid var(--theme-border, #cbd5e1);
    border-radius: 20px; background: var(--theme-surface, #fff); color: var(--theme-text, #111827);
    box-shadow: 0 24px 80px #11182738; font-family: inherit;
}
.article-action-dialog::backdrop { background: #140f1e85; }
.article-action-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--theme-border, #cbd5e1); }
.article-action-dialog-header h2 { margin: 0; font-size: 21px; line-height: 1.4; }
.article-action-dialog-header .article-action-close { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 12px; background: transparent; color: inherit; font: inherit; font-size: 30px; cursor: pointer; }
.article-action-dialog-body { padding: 20px; line-height: 1.6; overflow-wrap: anywhere; }
.article-action-dialog-body p { margin: 0 0 18px; }
.article-share-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 20px; }
.article-share-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--theme-border, #cbd5e1); border-radius: 10px; color: var(--theme-fg-purple, #6d28d9); text-decoration: none; }
.article-share-label { display: grid; gap: 8px; margin-bottom: 16px; font-size: 14px; font-weight: 600; }
.article-share-url { width: 100%; min-width: 0; min-height: 44px; padding: 10px; border: 1px solid var(--theme-border, #cbd5e1); border-radius: 10px; background: var(--theme-surface, #fff); color: var(--theme-text, #111827); font: inherit; }
.article-action-dialog-body .article-action-primary { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 0; border-radius: 12px; background: #6d28d9; color: #fff; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.article-action-dialog .article-share-status { margin: 16px 0 0; font-size: 14px; }
.article-action-dialog :is(button,a) { transition: transform 160ms ease-out, opacity 160ms ease-out; }
.saved-articles-panel { width: 100%; max-width: 1160px; margin: 24px auto 0; padding: 24px; border: 1px solid var(--theme-border, #cbd5e1); border-radius: 18px; background: var(--theme-surface, #fff); }
.saved-articles-panel h2 { margin: 0; font-size: 24px; line-height: 1.4; }
.saved-articles-panel h2:focus { outline: none; }
.saved-articles-list { display: grid; gap: 14px; }
.saved-article { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 0; border-top: 1px solid var(--theme-border, #cbd5e1); }
.saved-article-copy { min-width: 0; }
.saved-article-kind { display: block; margin-bottom: 7px; color: var(--theme-muted, #64748b); font-size: 12px; }
.saved-article-link { display: grid; gap: 6px; color: var(--theme-text, #111827); font-size: 17px; font-weight: 700; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; }
.saved-article-link:hover { text-decoration: underline; }
.saved-article-chinese { color: var(--theme-muted, #64748b); font-size: 15px; font-weight: 400; }
.saved-articles-status { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 12px 0; font-size: 14px; line-height: 1.6; }
.saved-articles-retry { min-height: 44px; padding: 8px 14px; border: 1px solid var(--theme-border, #cbd5e1); border-radius: 10px; background: var(--theme-surface, #fff); color: var(--theme-fg-purple, #6d28d9); cursor: pointer; font: inherit; }
.saved-articles-empty { margin: 14px 0 0; color: var(--theme-muted, #64748b); line-height: 1.6; }
@media (max-width: 600px) {
    .news-feed .news-card-supporting.news-card-illustrated.article-actions-host { padding-top: 54px; }
    .news-feed .news-card-supporting.news-card-illustrated > .article-actions { top: 0; right: 0; }
    .saved-articles-panel { padding: 18px; }
    .saved-article { flex-wrap: wrap; gap: 10px; }
    .saved-article .article-actions { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .article-actions > button,.article-action-dialog :is(button,a) { transition: none; transform: none !important; }
}
