:root{
  --bg:#070b16; --panel:#0e1530; --panel2:#121b3a; --border:rgba(120,140,220,.2);
  --cyan:#22d3ee; --purple:#a855f7; --blue:#6366f1; --text:#e8edff; --muted:#93a0c9;
  --grad:linear-gradient(135deg,#22d3ee,#a855f7); --radius:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
/* 关键修复：作者样式 .admin{display:flex} 会覆盖浏览器默认 [hidden]，导致未登录时后台仍渲染并遮挡登录框。
   用全局 [hidden]{display:none!important} 保证所有带 hidden 的元素（后台主界面、各视图、弹窗、toast）真正隐藏。 */
[hidden]{display:none !important}
body{font-family:"Rajdhani","PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
input,textarea,select{font-family:inherit}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text);transition:.2s;font-family:inherit}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--grad);border:none;color:#fff;box-shadow:0 10px 24px -10px rgba(99,102,241,.8)}
.btn-ghost{background:rgba(255,255,255,.05)}
.btn-danger{background:rgba(244,63,94,.15);border:1px solid rgba(244,63,94,.5);color:#fda4af}
.btn-sm{padding:6px 12px;font-size:13px}

/* 登录 */
.login{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#0e1530,#070b16 70%);z-index:1000}
.login-card{width:340px;max-width:90vw;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:38px 30px;text-align:center;box-shadow:0 30px 80px -30px #000}
.login-logo{font-family:"Orbitron",sans-serif;font-weight:900;font-size:34px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.login-logo span{display:block;font-size:12px;letter-spacing:4px;color:var(--muted);-webkit-text-fill-color:var(--muted);font-family:"Orbitron",sans-serif;margin-top:2px}
.login-sub{color:var(--muted);margin:6px 0 22px}
.login-card input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);font-size:15px;margin-bottom:14px}
.login-card input:focus{outline:none;border-color:var(--cyan)}
.login-card .btn{width:100%}
.login-tip{color:#f59e0b;font-size:13px;margin-top:12px;min-height:18px}

/* 布局 */
.admin{display:flex;min-height:100vh}
.sidebar{width:230px;flex:none;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 14px;position:fixed;top:0;bottom:0;left:0}
.side-brand{font-family:"Orbitron",sans-serif;font-weight:900;font-size:22px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding:6px 10px 18px}
.side-brand small{font-size:11px;color:var(--muted);-webkit-text-fill-color:var(--muted);margin-left:6px;letter-spacing:2px}
.side-nav{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.side-item{text-align:left;padding:12px 14px;border-radius:10px;border:none;background:transparent;color:var(--muted);font-size:15px;font-weight:600;cursor:pointer;transition:.2s;font-family:inherit}
.side-item:hover{background:rgba(255,255,255,.04);color:var(--text)}
.side-item.active{background:var(--grad);color:#fff}
.side-foot{margin-top:auto;font-size:12px;color:var(--muted);padding:10px;text-align:center}
.main{margin-left:230px;flex:1;padding:24px 28px 60px;min-width:0}

.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;position:sticky;top:0;z-index:5;padding:6px 0}
.topbar h1{font-size:24px;font-weight:700}
.top-actions{display:flex;gap:10px}

.view{animation:fade .3s}
@keyframes fade{from{opacity:0;transform:translateY(8px)}}

/* 卡片 */
.cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:22px}
.dash-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px}
.dash-card .n{font-family:"Orbitron",sans-serif;font-weight:900;font-size:34px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.dash-card .l{color:var(--muted);font-size:14px;margin-top:4px}

.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px}
.panel h3{font-size:17px;margin-bottom:16px;font-weight:700}
.quick{display:flex;gap:12px;flex-wrap:wrap}
.qbtn{padding:12px 18px;border-radius:10px;border:1px dashed var(--border);background:rgba(255,255,255,.03);color:var(--text);font-weight:600;cursor:pointer;font-family:inherit;transition:.2s}
.qbtn:hover{border-color:var(--cyan);color:var(--cyan)}

/* 表单 */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.form-grid label.full{grid-column:1/-1}
.form-grid input,.form-grid textarea,.form-grid select{width:100%;padding:10px 12px;border-radius:9px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);font-size:14px;font-family:inherit}
.form-grid input:focus,.form-grid textarea:focus{border-color:var(--cyan);outline:none}

/* 列表 */
.toolbar{margin-bottom:16px}
.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.item{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px}
.item .it-title{font-weight:700;font-size:16px}
.item .it-meta{font-size:13px;color:var(--muted)}
.item .it-actions{margin-top:auto;display:flex;gap:8px;padding-top:8px}
.item .badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(34,211,238,.15);color:var(--cyan);margin-right:6px}
.item .badge.aud{background:rgba(168,85,247,.15);color:var(--purple)}
.item .bn-prev{height:54px;border-radius:8px;display:flex;align-items:center;padding:0 14px;font-size:13px;color:#fff;margin-bottom:4px}

/* 弹窗 */
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center}
.modal-backdrop{position:absolute;inset:0;background:rgba(3,6,14,.7);backdrop-filter:blur(4px)}
.modal-panel{position:relative;z-index:1;width:640px;max-width:94vw;max-height:90vh;overflow-y:auto;background:var(--panel2);border:1px solid var(--border);border-radius:18px;padding:28px;box-shadow:0 30px 80px -30px #000;animation:pop .3s}
@keyframes pop{from{opacity:0;transform:translateY(20px) scale(.98)}}
.modal-close{position:absolute;top:14px;right:16px;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:rgba(255,255,255,.05);color:var(--text);font-size:20px;cursor:pointer;line-height:1}
.modal-close:hover{background:rgba(255,255,255,.12)}
.form-title{font-size:20px;font-weight:700;margin-bottom:18px}

/* 案例编辑器 */
.case-row{display:grid;grid-template-columns:1.4fr 1fr 0.8fr auto;gap:8px;margin-bottom:8px;align-items:start}
.case-row input{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);font-size:13px;font-family:inherit}
.case-video{margin:-2px 0 14px;padding:12px 14px;border:1px dashed rgba(34,211,238,.35);border-radius:10px;background:rgba(34,211,238,.05)}
.case-video .cv-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.case-video .cv-row input[type=file]{flex:1;min-width:160px;width:auto}
.case-video .cv-row input[type=number]{padding:7px 8px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);font-size:13px;font-family:inherit}
.cv-poster{margin-top:12px;padding:12px 12px 4px;border-top:1px dashed rgba(168,85,247,.3)}
.cv-poster-t{font-size:12px;color:var(--purple);font-weight:700;margin-bottom:8px}
.cv-poster .cv-row[hidden],.cv-poster [hidden]{display:none}
.cv-poster input[type=file]{padding:7px 8px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);font-size:13px;font-family:inherit}
.cv-poster input:not([type=file]):not([type=number]){width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);font-size:13px;font-family:inherit}
.cv-prev{margin-top:8px}
.cv-prev img{max-height:96px;border-radius:8px;border:1px solid var(--border);display:block}
.cv-info{font-size:12px;color:var(--cyan);margin-top:6px;word-break:break-all}
.case-row .del{background:rgba(244,63,94,.15);border:1px solid rgba(244,63,94,.5);color:#fda4af;border-radius:8px;cursor:pointer;padding:0 10px}
.add-link{background:none;border:1px dashed var(--border);color:var(--cyan);border-radius:8px;padding:8px 12px;cursor:pointer;font-family:inherit;width:100%;margin-top:4px}

.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--border-strong,var(--border));border-radius:10px;padding:12px 22px;z-index:99;box-shadow:0 16px 40px -16px #000;font-weight:600}
.toast.ok{border-color:rgba(52,211,153,.6);color:#6ee7b7}
.toast.err{border-color:rgba(244,63,94,.6);color:#fda4af}

@media(max-width:760px){
  .sidebar{transform:translateX(-100%);transition:.3s;z-index:40}
  .sidebar.open{transform:none}
  .main{margin-left:0}
  .form-grid{grid-template-columns:1fr}
  .case-row{grid-template-columns:1fr 1fr;}
  .case-row .del{grid-column:1/-1}
}
