:root{
  --bg:#0e1116;--panel:#151a21;--panel2:#1a2029;--text:#f4f1ea;--muted:#9aa3ae;
  --line:rgba(255,255,255,.09);--accent:#d8ff61;--accent2:#8ea53e;--shadow:0 28px 80px rgba(0,0,0,.38);
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif}
button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}
.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:800}
.primary-btn,.ghost-btn{border:1px solid var(--line);border-radius:999px;padding:10px 16px;transition:.2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.ghost-btn{background:rgba(255,255,255,.02);color:var(--text)}.ghost-btn:hover{background:var(--panel2);transform:translateY(-1px)}
.primary-btn{background:var(--accent);color:#171b0e;border-color:transparent;font-weight:800}.primary-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.inline-btn{white-space:nowrap}.submit{width:100%;padding:14px}
input,select,textarea{width:100%;border:1px solid var(--line);background:#0f1319;color:var(--text);border-radius:12px;padding:11px 12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:rgba(216,255,97,.58);box-shadow:0 0 0 3px rgba(216,255,97,.07)}
textarea{resize:vertical}label{color:#dfe4e9}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row label,.editor-card>label{display:grid;gap:7px;margin:0 0 14px;font-size:12px}
.alert{border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-size:12px;margin:12px 0}.alert.error{border-color:rgba(255,90,90,.35);background:rgba(255,90,90,.06)}.alert.ok{border-color:rgba(216,255,97,.35);background:rgba(216,255,97,.06)}
.text-link{display:inline-block;color:var(--muted);font-size:12px;margin-top:16px}

/* 登录 / 安装 */
.install-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,rgba(216,255,97,.08),transparent 34%)}
.install-card{width:min(520px,100%);border:1px solid var(--line);background:var(--panel);border-radius:28px;padding:30px;box-shadow:var(--shadow)}
.install-card h1{font-family:Georgia,"Songti SC",serif;font-size:34px;margin:9px 0 10px}.install-card>p,.install-note{color:var(--muted);font-size:13px;line-height:1.7}
.install-card form label{display:grid;gap:7px;margin:14px 0;font-size:12px}.check{display:flex!important;align-items:center;gap:8px}.check input{width:auto}

/* 后台框架 */
.admin-top{width:min(1180px,calc(100% - 36px));margin:auto;display:flex;align-items:center;justify-content:space-between;padding:34px 0 22px;border-bottom:1px solid var(--line)}
.admin-top h1{margin:5px 0 0;font-size:30px}.admin-top nav{display:flex;gap:8px;flex-wrap:wrap}
.admin-wrap{width:min(1180px,calc(100% - 36px));margin:30px auto 80px}.admin-wrap.narrow{width:min(860px,calc(100% - 36px))}
.admin-hint,.ai-panel{border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:18px;margin-bottom:18px;box-shadow:0 12px 40px rgba(0,0,0,.12)}
.admin-hint{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-hint b{font-size:13px}.admin-hint span{font-size:11px;color:var(--muted)}
.admin-list{display:grid;gap:10px}.admin-list article{display:grid;grid-template-columns:88px 1fr auto;gap:16px;align-items:center;border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:10px;transition:.2s ease}.admin-list article:hover{border-color:rgba(216,255,97,.18);transform:translateY(-1px)}
.admin-thumb{width:88px;height:70px;border-radius:10px;overflow:hidden;background:var(--panel2)}.admin-thumb img{width:100%;height:100%;object-fit:contain}.admin-main span,.admin-main small{font-size:10px;color:var(--muted)}.admin-main h3{margin:4px 0}.admin-actions{display:flex;gap:8px}
.empty-card{border:1px dashed var(--line);border-radius:20px;padding:48px;text-align:center;color:var(--muted);background:var(--panel)}

/* 编辑器 */
.editor-card{border:1px solid var(--line);background:var(--panel);border-radius:22px;padding:22px;margin-bottom:18px;box-shadow:0 12px 40px rgba(0,0,0,.12)}
.sub-title{font-size:18px;margin:28px 0 4px}.sub-note{font-size:11px;color:var(--muted);margin:0 0 12px}
.upload-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 22px}.upload-box{aspect-ratio:1/1;border:1px dashed rgba(216,255,97,.4);border-radius:14px;display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:rgba(216,255,97,.03);position:relative;overflow:hidden;background-size:cover;background-position:center}.upload-box input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-box b{font-size:26px;color:var(--accent)}.upload-box span{font-size:11px}.upload-box small{font-size:9px;color:var(--muted)}.upload-box.has-file{border-style:solid}.upload-box.has-file b,.upload-box.has-file span,.upload-box.has-file small{background:rgba(0,0,0,.68);color:#fff;padding:3px 6px;border-radius:6px;position:relative;z-index:1}
.ai-panel-head{display:flex;align-items:center;justify-content:space-between}.ai-panel h2{margin:5px 0}.ai-panel>p{color:var(--muted);font-size:12px;line-height:1.7}.ai-state{font:700 10px ui-monospace,SFMono-Regular,Consolas,monospace;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--accent)}.ai-actions{display:flex;gap:8px;margin:14px 0}.ai-log{font:11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;word-break:break-all}

@media(max-width:700px){
  .admin-top{align-items:flex-start;gap:16px;flex-direction:column}.admin-top nav{width:100%}.admin-top nav a{flex:1}
  .admin-list article{grid-template-columns:64px 1fr}.admin-thumb{width:64px;height:58px}.admin-actions{grid-column:1/-1}.admin-hint{align-items:flex-start;flex-direction:column}
  .form-row{grid-template-columns:1fr}.upload-grid{grid-template-columns:repeat(2,1fr)}
}


/* v2.4 delete action */
.admin-actions form{margin:0;display:inline-flex}
.danger-btn{
  border:1px solid rgba(255,88,88,.32);
  color:#ff8d8d;
  background:rgba(255,88,88,.06);
  border-radius:999px;
  padding:10px 16px;
  font:inherit;
  cursor:pointer;
  transition:.2s ease;
}
.danger-btn:hover{
  background:rgba(255,88,88,.14);
  border-color:rgba(255,88,88,.55);
  transform:translateY(-1px);
}

/* v2.5 AI image panels */
.image-ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.image-ai-grid .ai-panel{margin-bottom:0}
.ai-image-preview{height:260px;margin:14px 0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel2);display:grid;place-items:center}
.ai-image-preview img{width:100%;height:100%;object-fit:contain}
.ai-image-preview.checker{background-color:#eef0f2;background-image:linear-gradient(45deg,#dfe3e7 25%,transparent 25%),linear-gradient(-45deg,#dfe3e7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dfe3e7 75%),linear-gradient(-45deg,transparent 75%,#dfe3e7 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}
@media(max-width:800px){.image-ai-grid{grid-template-columns:1fr}}


/* v2.5.3 image AI busy state */
.primary-btn:disabled,.ghost-btn:disabled,.image-ai-start.is-busy{
  cursor:not-allowed;
  opacity:.52;
  transform:none!important;
  filter:none!important;
  pointer-events:none;
}
.image-ai-panel.is-generating{border-color:rgba(216,255,97,.24)}
.image-ai-panel.is-generating .image-ai-state{background:rgba(216,255,97,.08)}


/* v2.7 model revision */
.ai-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.ai-notes-grid label,.support-upload{display:grid;gap:8px;font-size:12px}
.support-upload input[type=file]{border:1px solid rgba(255,255,255,.12);background:#0f141c;color:#f1f4f8;border-radius:12px;padding:10px 12px}
.version-history{margin-top:18px;border-top:1px solid rgba(255,255,255,.1);padding-top:16px}
.version-history-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:12px}
.version-history-head h3{margin:0;font-size:18px}
.version-history-head span{font-size:11px;color:#9fb0bf}
.version-empty{border:1px dashed rgba(255,255,255,.14);border-radius:16px;padding:18px;color:#9fb0bf;font-size:12px;text-align:center}
.version-list{display:grid;gap:12px}
.version-card{border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.02);padding:14px}
.version-card.current{border-color:rgba(216,255,97,.35);box-shadow:0 0 0 1px rgba(216,255,97,.12) inset}
.version-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}
.version-top b{display:block;font-size:14px}
.version-top span,.version-top i{font-size:11px;color:#9fb0bf;font-style:normal}
.version-preview{margin-bottom:10px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#121824;max-width:240px}
.version-preview img,.version-ref{display:block;width:100%;height:auto}
.version-meta{display:grid;gap:10px;margin:0}
.version-meta div{display:grid;gap:4px}
.version-meta dt{font-size:11px;color:#9fb0bf}
.version-meta dd{margin:0;font-size:12px;line-height:1.7}
.version-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.version-actions form{margin:0}
.version-waiting{font-size:11px;color:#9fb0bf}
@media(max-width:700px){.ai-notes-grid{grid-template-columns:1fr}.version-history-head{flex-direction:column;align-items:flex-start}}


.ai-actions-wrap{flex-wrap:wrap}
.primary-btn.lime{background:#d8ff61;color:#14180e}
.revision-preview-box{margin-top:14px;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px;background:rgba(255,255,255,.02)}
.revision-preview-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}
.revision-preview-head b{font-size:15px}
.revision-preview-head span,.revision-empty{font-size:12px;color:#9fb0bf}
.revision-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.revision-grid figure{margin:0;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;background:#121824}
.revision-grid figure div{aspect-ratio:1/1;overflow:hidden}
.revision-grid img{width:100%;height:100%;object-fit:cover;display:block}
.revision-grid figcaption{padding:8px 10px;font-size:12px;text-align:center;color:#d8dde7}
.revision-ref-wrap{margin-top:14px;display:grid;gap:8px;max-width:220px}
.revision-ref-wrap b{font-size:12px}
.revision-ref-wrap img{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.1)}
@media(max-width:900px){.revision-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.revision-grid{grid-template-columns:1fr}.revision-preview-head{flex-direction:column;align-items:flex-start}}
