:root { --page:#171b1c; --sidebar:#1d2223; --surface:#23292a; --surface-2:#2a3031; --line:rgba(242,239,229,.13); --ink:#f2efe5; --muted:#9ca3a1; --quiet:#697170; --yellow:#ffca28; --danger:#ff8178; }
* { box-sizing:border-box; }
html { color-scheme:dark; }
body { margin:0; min-height:100svh; background:var(--page); color:var(--ink); font-family:"Microsoft YaHei","PingFang SC",sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none !important; }

.user-header { position:sticky; top:0; z-index:20; height:92px; padding:0 38px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(20,24,25,.96); }
.user-brand { display:inline-flex; align-items:center; gap:12px; }
.user-brand img:first-child { width:58px; height:58px; object-fit:contain; }
.user-brand img:last-child { width:112px; height:auto; }
.header-account { display:flex; align-items:center; gap:26px; color:var(--muted); font-size:13px; }
.header-account a:hover { color:var(--yellow); }
.app-shell { min-height:calc(100svh - 92px); display:grid; grid-template-columns:252px minmax(0,1fr); }
.app-shell.is-visitor { display:block; }
.admin-sidebar { position:sticky; top:92px; height:calc(100svh - 92px); padding:38px 26px 26px; display:flex; flex-direction:column; border-right:1px solid var(--line); background:var(--sidebar); }
.sidebar-heading { padding:0 12px 30px; }
.sidebar-heading span,.view-heading span { display:block; margin-bottom:9px; color:var(--yellow); font-size:11px; }
.sidebar-heading strong { font-size:18px; font-weight:500; }
.admin-nav { display:grid; gap:3px; }
.admin-nav button { position:relative; height:45px; padding:0 14px; border:0; background:transparent; color:var(--muted); text-align:left; font-size:14px; }
.admin-nav button::before { content:""; position:absolute; left:0; top:12px; width:2px; height:21px; background:transparent; }
.admin-nav button:hover { color:var(--ink); background:rgba(255,255,255,.025); }
.admin-nav button.is-active { color:var(--ink); background:rgba(255,255,255,.045); }
.admin-nav button.is-active::before { background:var(--yellow); }
.sidebar-logout { margin-top:auto; height:42px; border:1px solid var(--line); background:transparent; color:var(--muted); }
.sidebar-logout:hover { color:var(--danger); border-color:rgba(255,129,120,.5); }

.workspace { position:relative; width:100%; min-width:0; padding:54px clamp(34px,5vw,78px) 90px; }
.loading-state { color:var(--muted); }
.global-message { position:fixed; z-index:50; right:30px; bottom:28px; min-height:0; margin:0; padding:13px 18px; background:var(--ink); color:#171a1a; font-size:13px; box-shadow:0 12px 40px rgba(0,0,0,.28); opacity:0; pointer-events:none; transform:translateY(10px); transition:.2s ease; }
.global-message.is-visible { opacity:1; transform:none; }
.global-message.is-error { background:#ffaaa4; }
.workspace-view { max-width:1400px; margin:0 auto; }
.view-heading { min-height:86px; margin-bottom:48px; display:flex; align-items:flex-start; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); }
.view-heading h1 { margin:0; font-size:32px; font-weight:500; letter-spacing:0; }
.quiet-link { margin-top:14px; color:var(--muted); font-size:13px; }
.quiet-link:hover { color:var(--yellow); }
.primary-command,.quiet-command,.danger-command { min-height:42px; padding:0 18px; border:0; background:var(--yellow); color:#171a1a; }
.quiet-command { border:1px solid var(--line); background:transparent; color:var(--ink); }
.danger-command { border:1px solid rgba(255,129,120,.35); background:transparent; color:var(--danger); }
.view-heading>.primary-command { margin-top:3px; }

.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.metric { min-height:144px; padding:26px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,255,255,.015); }
.metric span { color:var(--muted); font-size:13px; }
.metric strong { display:block; margin-top:24px; font-size:34px; font-weight:400; }
.plain-section { margin-top:58px; }
.section-title { min-height:52px; display:flex; justify-content:space-between; align-items:flex-start; gap:20px; border-bottom:1px solid var(--line); }
.section-title h2 { margin:0; font-size:18px; font-weight:500; }
.section-title span { color:var(--quiet); font-size:12px; }
.activity-row,.table-row { min-height:68px; display:grid; align-items:center; gap:20px; border-bottom:1px solid var(--line); }
.activity-row { grid-template-columns:150px 1fr auto; }
.activity-row span,.table-row span { color:var(--muted); font-size:13px; }
.activity-row time { color:var(--quiet); font-size:12px; }
.empty-state { padding:40px 0; color:var(--quiet); font-size:14px; }

.carousel-admin-list { display:grid; }
.carousel-row { display:grid; grid-template-columns:132px minmax(0,1fr) 100px 120px; gap:24px; align-items:center; min-height:116px; padding:16px 0; border-bottom:1px solid var(--line); }
.carousel-preview { width:132px; aspect-ratio:16/9; background:#0f1213; object-fit:cover; }
.carousel-video-mark { display:grid; place-items:center; color:var(--muted); font-size:12px; }
.carousel-info { min-width:0; }
.carousel-info strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:500; }
.carousel-info span { display:block; margin-top:10px; color:var(--quiet); font-size:12px; }
.status-label { color:var(--muted); font-size:12px; }
.status-label.is-on { color:var(--yellow); }
.row-actions { display:flex; justify-content:flex-end; gap:8px; }
.icon-command { width:36px; height:36px; border:1px solid var(--line); background:transparent; color:var(--muted); font-size:13px; }
.archive-open { width:auto; display:grid; place-items:center; padding:0 10px; text-decoration:none; }
.icon-command:hover { color:var(--ink); border-color:rgba(242,239,229,.35); }
.icon-command.is-danger:hover { color:var(--danger); border-color:rgba(255,129,120,.4); }
.compliance-section { padding-bottom:40px; }
.compliance-list { display:grid; }
.compliance-row { display:grid; grid-template-columns:160px 1fr 1fr 42px; gap:12px; align-items:end; padding:20px 0; border-bottom:1px solid var(--line); }
.compliance-row label,.dialog-form label { display:grid; gap:8px; color:var(--muted); font-size:12px; }
input,select { width:100%; height:43px; padding:0 12px; border:1px solid var(--line); outline:none; background:#131718; color:var(--ink); }
textarea { width:100%; min-height:220px; resize:vertical; padding:12px; border:1px solid var(--line); outline:none; background:#131718; color:var(--ink); font:inherit; line-height:1.6; }
textarea:focus { border-color:var(--yellow); }
.markdown-editor-label { gap:8px !important; }
.markdown-editor { border:1px solid var(--line); background:#131718; }
.markdown-toolbar { display:flex; flex-wrap:wrap; gap:1px; padding:7px; border-bottom:1px solid var(--line); background:#171c1d; }
.markdown-toolbar button { min-width:34px; height:30px; padding:0 9px; border:0; background:transparent; color:var(--muted); font-size:12px; }
.markdown-toolbar button:hover { background:#252c2d; color:var(--yellow); }
.markdown-toolbar select { width:auto; min-width:180px; height:30px; padding:0 8px; border:0; background:transparent; color:var(--muted); font-size:12px; }
.markdown-toolbar select:focus { outline:1px solid var(--yellow); border-color:transparent; }
.markdown-panes { display:grid; grid-template-columns:1fr 1fr; min-height:500px; }
.markdown-panes textarea { min-height:500px; height:100%; border:0; border-right:1px solid var(--line); border-radius:0; resize:none; font-family:Consolas, "Courier New", monospace; font-size:14px; }
.markdown-preview { overflow:auto; padding:16px 18px; color:#d9ded9; font-size:14px; line-height:1.75; }
.markdown-preview:empty::before { content:"实时预览"; color:var(--quiet); }
.markdown-preview h1,.markdown-preview h2,.markdown-preview h3 { margin:0 0 13px; color:var(--ink); line-height:1.35; }
.markdown-preview h1 { font-size:23px; }.markdown-preview h2 { font-size:19px; }.markdown-preview h3 { font-size:16px; }
.markdown-preview p,.markdown-preview ul,.markdown-preview ol,.markdown-preview blockquote,.markdown-preview pre { margin:0 0 13px; }
.markdown-preview blockquote { margin-left:0; padding-left:12px; border-left:2px solid var(--yellow); color:var(--muted); }
.markdown-preview code { padding:2px 5px; background:#23292a; color:#f1ce6c; font-family:Consolas, "Courier New", monospace; }
.markdown-preview pre { padding:12px; overflow:auto; background:#0d1011; }.markdown-preview pre code { padding:0; background:none; }
.markdown-preview a { color:var(--yellow); }.markdown-preview img { max-width:100%; height:auto; }
input:focus,select:focus { border-color:var(--yellow); }
.compliance-form>.primary-command { margin-top:24px; float:right; }
.sms-settings-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding-top:20px; }
.sms-settings-form label { display:grid; gap:8px; color:var(--muted); font-size:12px; }
.sms-settings-form .primary-command { grid-column:1 / -1; justify-self:start; }
.sms-settings-status { grid-column:1 / -1; color:var(--quiet); font-size:12px; }

.content-table { border-top:1px solid var(--line); }
.table-row { grid-template-columns:minmax(220px,1fr) 120px 120px 150px; }
.table-main { min-width:0; }
.table-main strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:500; }
.table-main small { display:block; margin-top:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--quiet); }
.upload-bar { display:grid; grid-template-columns:minmax(220px,1fr) 140px 150px 170px auto; gap:10px; margin-bottom:34px; padding-bottom:34px; border-bottom:1px solid var(--line); }
.account-details { max-width:760px; border-top:1px solid var(--line); }
.account-details>div { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:30px; border-bottom:1px solid var(--line); }
.account-details span { color:var(--muted); font-size:13px; }
.account-details strong { font-weight:500; }
.account-logout { margin-top:34px; }
.storage-note { margin:-22px 0 34px; color:var(--muted); font-size:13px; line-height:1.7; }
.location-list { border-top:1px solid var(--line); }
.location-row { min-height:94px; padding:18px 0; display:grid; grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr) 120px 110px; gap:24px; align-items:center; border-bottom:1px solid var(--line); }
.location-main strong,.location-path strong { display:block; font-size:14px; font-weight:500; }
.location-main span,.location-path span { display:block; margin-top:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--quiet); font-size:12px; }
.type-options { margin:0; padding:14px; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; border:1px solid var(--line); }
.type-options legend { padding:0 7px; color:var(--muted); font-size:12px; }
.type-options label { display:flex; align-items:center; gap:8px; color:var(--ink); }
.type-options input { width:16px; height:16px; accent-color:var(--yellow); }

.editor-dialog { width:min(620px,calc(100% - 32px)); padding:0; border:1px solid var(--line); background:var(--surface); color:var(--ink); box-shadow:0 35px 100px rgba(0,0,0,.55); }
.post-editor-dialog { width:min(1280px,calc(100% - 24px)); }
.post-editor-dialog .dialog-form { padding:36px; }
.post-mode-dialog { width:min(680px,calc(100% - 32px)); }
.post-mode-picker { padding:38px; }
.post-mode-picker>span { color:var(--yellow); font-size:12px; }
.post-mode-picker h2 { margin:8px 0 28px; font-size:28px; font-weight:500; }
.post-mode-fields { margin-bottom:18px; }
.post-mode-category { display:grid; gap:8px; color:var(--muted); font-size:12px; }
.post-mode-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:26px; }
.post-mode-options button { min-height:150px; padding:24px; border:1px solid var(--line); background:#151a1b; color:var(--ink); text-align:left; }
.post-mode-options button:hover { border-color:var(--yellow); background:#1b2122; }
.post-mode-options button:disabled { border-color:var(--line); color:var(--quiet); background:#131718; cursor:not-allowed; opacity:.55; }
.post-mode-options strong,.post-mode-options small { display:block; }
.post-mode-options strong { margin-bottom:14px; font-size:18px; font-weight:500; }
.post-mode-options small { color:var(--muted); line-height:1.65; }
.editor-dialog::backdrop { background:rgba(7,9,9,.72); }
.dialog-form { padding:30px; display:grid; gap:20px; }
.dialog-form header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:4px; }
.dialog-form header span { color:var(--yellow); font-size:11px; }
.dialog-form h2 { margin:7px 0 0; font-size:24px; font-weight:500; }
.dialog-form header button { width:36px; height:36px; border:0; background:transparent; color:var(--muted); font-size:25px; }
.form-pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.portfolio-fields { display:grid; gap:20px; }
.portfolio-fields[hidden] { display:none; }
.toggle-field { align-content:end; height:67px; grid-template-columns:22px 1fr !important; align-items:center; }
.toggle-field input { width:18px; height:18px; accent-color:var(--yellow); }
.dialog-form footer { display:flex; justify-content:flex-end; gap:10px; margin-top:8px; }
.dialog-form input[readonly] { color:var(--muted); background:#1a1f20; cursor:default; }
.dialog-form label small { color:var(--quiet); font-size:11px; }
.media-option-meta { color:var(--quiet); }

@media (max-width:900px) {
    .user-header { height:78px; padding:0 20px; }
    .user-brand img:first-child { width:48px; height:48px; }
    .user-brand img:last-child { width:92px; }
    .header-account span { display:none; }
    .app-shell { min-height:calc(100svh - 78px); grid-template-columns:1fr; }
    .admin-sidebar { position:sticky; top:78px; z-index:15; width:100%; height:auto; padding:0 16px; border-right:0; border-bottom:1px solid var(--line); overflow-x:auto; }
    .sidebar-heading,.sidebar-logout { display:none; }
    .admin-nav { display:flex; min-width:max-content; }
    .admin-nav button { width:auto; padding:0 16px; }
    .admin-nav button::before { left:15px; right:15px; top:auto; bottom:0; width:auto; height:2px; }
    .workspace { padding:40px 20px 70px; }
    .view-heading { min-height:74px; margin-bottom:34px; }
    .view-heading h1 { font-size:27px; }
    .metric-grid { grid-template-columns:1fr 1fr; }
    .carousel-row { grid-template-columns:100px minmax(0,1fr) auto; gap:14px; }
    .carousel-preview { width:100px; }
    .status-label { display:none; }
    .compliance-row { grid-template-columns:1fr; }
    .compliance-row>.icon-command { justify-self:end; }
    .table-row { grid-template-columns:minmax(0,1fr) auto; padding:14px 0; }
    .table-row>:nth-child(2),.table-row>:nth-child(3) { display:none; }
    .upload-bar { grid-template-columns:1fr 1fr; }
    .upload-bar input { grid-column:1/-1; }
    .location-row { grid-template-columns:minmax(0,1fr) auto; }
    .location-path { grid-column:1/-1; grid-row:2; }
    .location-row>.status-label { display:block; }
}
@media (max-width:560px) {
    .metric-grid { grid-template-columns:1fr; }
    .activity-row { grid-template-columns:1fr; gap:8px; padding:16px 0; }
    .carousel-row { grid-template-columns:82px minmax(0,1fr); }
    .carousel-preview { width:82px; }
    .row-actions { grid-column:2; justify-content:flex-start; }
    .upload-bar,.form-pair { grid-template-columns:1fr; }
    .upload-bar>* { grid-column:1 !important; }
    .type-options { grid-template-columns:1fr 1fr; }
    .markdown-panes { grid-template-columns:1fr; }
    .markdown-panes textarea { min-height:280px; border-right:0; border-bottom:1px solid var(--line); }
    .markdown-preview { min-height:220px; }
    .post-mode-options { grid-template-columns:1fr; }
}
