:root{--admin-green:#146c38;--admin-rgb:20,108,56;--admin-ink:#fff;--admin-bg:#e3f4e9;--admin-hover:#cae9d5;--admin-line:#8fbc9e}
:root[data-theme=dark]{--admin-green:#80e6a2;--admin-rgb:128,230,162;--admin-ink:#122b1b;--admin-bg:#193e2c;--admin-hover:#23543b;--admin-line:#3d8056}
:is(#admin-dialog,#admin-auth-dialog,#admin-open,[data-admin-open],.admin-inline,.admin-scope){--panel:var(--admin-bg);--panel-dark:var(--admin-hover);--line:var(--admin-line);--edge:var(--admin-line);--accent:var(--admin-green);--accent-hover:color-mix(in srgb,var(--admin-green) 85%,var(--text));--accent-rgb:var(--admin-rgb);--accent-ink:var(--admin-ink);--selected:rgba(var(--accent-rgb),.14);--hover:rgba(var(--accent-rgb),.08);--danger-bg:var(--admin-hover)}
:is(#admin-open,[data-admin-open]){background:var(--panel);color:var(--accent);border-color:var(--line)}
:is(#admin-open,[data-admin-open]):hover{background:var(--panel-dark)}
.admin-dialog{width:1320px}
.admin-dialog .dialog-description{margin:8px 0 16px}
.admin-tag{display:inline-block;font-size:12px;font-weight:400;vertical-align:middle;margin-left:8px;padding:2px 7px;border:1px solid var(--line);border-radius:4px;background:var(--selected);color:var(--accent)}
.admin-mode-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:16px}
.admin-mode-tabs button{min-height:44px;padding:0 2px 10px;color:var(--muted);border-bottom:2px solid transparent}
.admin-mode-tabs button.active{color:var(--accent);border-color:var(--accent)}
.admin-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.admin-summary>div{flex:1;position:relative;padding:12px 16px;background:var(--panel-dark);border:1px solid var(--line);border-radius:var(--radius-sm)}
.admin-summary small{position:absolute;right:14px;top:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.admin-summary strong{display:block;font-size:24px;line-height:1.5;font-weight:400}
.admin-summary span{color:var(--muted)}
.admin-summary .progress strong{color:var(--progress)}
.admin-summary .progress_auto{background:var(--progress-bg);border-color:color-mix(in srgb,var(--progress) 30%,var(--line))}
.admin-summary .progress_auto strong{color:var(--progress)}
.admin-summary .done strong{color:var(--done)}
.admin-posts-layout{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:24px}
.admin-posts-list{min-width:0}
.admin-list-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.admin-categories{display:flex;gap:8px}
.admin-player-note{font-size:12px;color:var(--muted)}
.admin-categories button{min-height:36px;padding:5px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-dark);color:var(--muted)}
.admin-categories button.active{background:var(--selected);color:var(--accent);border-color:rgba(var(--accent-rgb),.25)}
.admin-table-wrap{max-height:360px;overflow:auto;scrollbar-width:thin;border:1px solid var(--line);border-radius:var(--radius-sm)}
.admin-table{width:100%;border-collapse:collapse}
.admin-table th{position:sticky;top:0;z-index:1;text-align:left;font-weight:400;padding:10px 12px;background:var(--panel-dark);color:var(--muted)}
.admin-table td{padding:14px 12px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.admin-table td:first-child{width:42%}
.admin-table td small{display:block;color:var(--muted);margin-top:4px}
.admin-table td:nth-child(2){color:var(--muted);font-variant-numeric:tabular-nums}
.admin-table select{width:210px}
.post-management,.admin-post-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.post-management{margin-top:12px}
.post-management .button,.admin-post-actions .button{min-height:36px;padding:4px 8px;gap:6px}
.post-delete{color:var(--danger)}
.post-delete:hover{color:var(--danger);background:var(--danger-bg)}
.admin-post-actions{white-space:nowrap}
.status-select{min-height:38px;padding:6px 8px;border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);cursor:pointer}
.status-select:disabled{opacity:.65;cursor:wait}
.status-select[data-inherited-status]{opacity:.8;cursor:default}
.inherited-status-note{color:var(--muted);font-size:11px}
.admin-inline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-dark)}
.admin-inline>svg{width:16px;height:16px;color:var(--accent)}
.admin-inline select{margin-left:auto}
.admin-inline button{min-height:36px;padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-sm)}
.post-lock-toggle.locked{background:var(--selected);border-color:var(--accent);color:var(--accent)}
.reference-drop-hint{color:var(--accent);font-size:11px}
.admin-inline.reference-drop-ready{outline:2px dashed var(--accent);outline-offset:3px}
.reference-drop-button.reference-drop-ready{outline:2px dashed var(--accent);outline-offset:3px}
:is(.admin-inline,.reference-drop-button).reference-drop-hover{outline:2px solid var(--accent);outline-offset:3px;background:var(--accent);color:var(--accent-ink)}
.suggestion.reference-drop-hover{outline:2px solid var(--accent);outline-offset:-2px;background:var(--selected)}
.admin-inline.reference-drop-hover .reference-drop-hint{color:inherit}
.admin-inline.reference-drop-hover .reference-drop-hint:after{content:' · 松开即可加入'}
.reference-drop-button.reference-drop-remove{color:var(--danger);outline-color:var(--danger);background:var(--danger-bg)}
.reference-drop-button.reference-drop-remove:after{content:' · 移出'}
.admin-inline.reference-drop-remove .reference-drop-hint{font-size:0}
.admin-inline.reference-drop-remove .reference-drop-hint:after{content:'再次拖入，移出当前父条例';font-size:11px;color:var(--danger)}
@media(max-width:1200px){.reference-drop-hint{display:none}}
@media(hover:none){.reference-drop-hint{display:none}}
.admin-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.admin-bottom>span{display:flex;align-items:center;gap:8px;color:var(--muted)}
.key-description{color:var(--muted);margin:0 0 16px}
#create-admin-key{display:flex;gap:10px}
#create-admin-key input{flex:1;min-width:0}
#created-key-box{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--selected);padding:0 16px 16px;margin-top:20px}
#created-key-box textarea{font-family:ui-monospace,monospace;word-break:break-all;resize:none}
#created-key-box button{margin-top:10px}
.admin-key-row{border-bottom:1px solid var(--line);padding:16px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
.admin-key-row>div{display:flex;align-items:center;gap:10px;min-width:0;overflow-wrap:anywhere}
.admin-key-row svg{width:18px;height:18px;color:var(--muted)}
.admin-key-row small{display:block;color:var(--muted);margin-top:4px}
.admin-key-row button{flex-shrink:0;color:var(--danger);min-height:36px}
.revoked-label{color:var(--muted);white-space:nowrap}
.key-empty{padding:28px 12px;text-align:center;color:var(--muted)}
.inline-error{color:var(--danger);min-height:24px;overflow-wrap:anywhere}
.admin-table .completion-admin-note{color:var(--progress);margin:4px 0 0}
.progress-settings{align-self:start;padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-dark)}
.progress-settings>.eyebrow{float:right;font-size:11px;line-height:27px}
.progress-settings h3{margin:0 0 18px;font-size:18px;font-weight:400}
.progress-settings p{color:var(--muted);font-size:12px;line-height:1.8;margin:0 0 18px}
.progress-settings fieldset{border:0;margin:0;padding:0;min-width:0}
.progress-settings legend{padding:0;margin:0 0 10px}
.progress-duration-inputs{display:flex;align-items:center;gap:10px}
.progress-duration-inputs label{flex:1;min-width:0;font-size:12px;color:var(--muted)}
.progress-duration-inputs input{margin-top:6px;font-size:18px;font-variant-numeric:tabular-nums;padding:8px 10px}
.progress-duration-inputs>span{padding-top:24px;color:var(--muted)}
.progress-preview{margin:16px 0;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.progress-preview-top,.progress-preview-scale{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:var(--muted)}
.progress-preview-top button{min-height:28px;color:var(--progress);font-size:11px}
.progress-preview svg{display:block;width:100%;height:72px;margin:8px 0}
.progress-preview-scale strong{font-weight:400;color:var(--text);font-variant-numeric:tabular-nums}
.progress-settings .button{width:100%}
.progress-settings .progress-settings-message{margin:10px 0 0;color:var(--done)}
.progress-settings .progress-settings-message.dirty{color:var(--accent)}
.progress-settings .progress-settings-message.error{color:var(--danger)}
#progress-settings-retry{color:var(--accent);font-size:12px;min-height:36px}
@media(max-width:1150px){.admin-posts-layout{grid-template-columns:1fr}.progress-settings{display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:24px}.progress-settings>form{grid-column:2;grid-row:1/span 5}.progress-settings .progress-preview{margin-top:12px}.admin-table{min-width:740px}.admin-summary span{font-size:12px}}
@media(max-width:600px){.admin-tag{margin-left:0}.admin-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-summary>div{padding:12px}.admin-bottom{align-items:flex-start;flex-direction:column}.admin-key-row{align-items:flex-start}#create-admin-key{flex-wrap:wrap}#create-admin-key input{flex-basis:100%}.admin-inline{gap:8px}.admin-inline select{max-width:100%;margin-left:0}.progress-settings{display:block;padding:16px}.progress-settings h3{font-size:18px}.admin-table-wrap{max-height:320px}}

.bulk-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}
.bulk-actions .status-select{min-width:140px;max-width:100%}
.media-cleanup{grid-column:1/-1;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.media-cleanup h3{float:none;font-size:14px;margin-bottom:8px}
.media-cleanup .button{width:auto}
.media-cleanup #media-cleanup-result{margin:12px 0 0;overflow-wrap:anywhere}
@media(max-width:600px){.bulk-actions .status-select,.bulk-actions button{min-height:44px}}
