/* 业成传媒管理后台样式 */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#2B5CF5;--blue-dark:#1D4ED8;--bg:#F5F7FA;--card:#fff;
  --text:#1A1A2E;--muted:#6B7280;--border:#E5E7EB;--red:#E05A3F;
}
body{font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--text);font-size:14px}

/* ── 登录页 ── */
.login-body{display:grid;place-items:center;min-height:100vh;background:linear-gradient(160deg,#EEF2FF,#FEF2F0)}
.login-box{background:#fff;border-radius:16px;padding:2.5rem 2.2rem;width:360px;box-shadow:0 20px 60px rgba(26,26,46,.12)}
.login-box h1{font-size:1.5rem;text-align:center;color:var(--blue)}
.login-box .sub{text-align:center;color:var(--muted);margin:.3rem 0 1.5rem;font-size:.85rem}
.login-box input{width:100%;padding:.7rem .9rem;border:1px solid var(--border);border-radius:8px;margin-bottom:.8rem;font-size:.95rem}
.login-box input:focus{outline:none;border-color:var(--blue)}

/* ── 布局 ── */
.admin-body{display:flex;min-height:100vh}
.sidebar{width:220px;background:#101828;color:#fff;display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:10}
.sidebar .brand{padding:1.2rem 1.2rem 1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar .brand strong{font-size:1.05rem;display:block}
.sidebar .brand span{font-size:.75rem;color:rgba(255,255,255,.5)}
.side-nav{flex:1;padding:.8rem 0;overflow-y:auto}
.side-nav a{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.2rem;color:rgba(255,255,255,.75);text-decoration:none;font-size:.92rem;transition:background .2s;position:relative}
.side-nav a:hover{background:rgba(255,255,255,.06)}
.side-nav a.active{background:var(--blue);color:#fff}
.side-nav .badge{background:var(--red);color:#fff;border-radius:999px;padding:.05rem .45rem;font-size:.72rem;margin-left:auto}
.side-foot{padding:1rem 1.2rem;border-top:1px solid rgba(255,255,255,.08)}
.side-foot .user{font-size:.9rem;margin-bottom:.4rem}
.side-foot .logout{color:rgba(255,255,255,.6);font-size:.8rem;text-decoration:none}
.side-foot .logout:hover{color:#fff}

.main{margin-left:220px;flex:1;padding:1.5rem 2rem;min-width:0}

/* ── 通用 ── */
.page-head{margin-bottom:1.2rem}
.page-head h2{font-size:1.4rem}
.page-head p{color:var(--muted);font-size:.85rem;margin-top:.2rem}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.2rem;margin-bottom:1.2rem}
.card h3{font-size:1rem;margin-bottom:.8rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.2rem}
@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}

.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.2rem}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.2rem;text-align:center}
.stat-card .num{font-size:1.8rem;font-weight:800;color:var(--blue)}
.stat-card .label{color:var(--muted);font-size:.82rem;margin-top:.2rem}
@media(max-width:900px){.stat-grid{grid-template-columns:1fr 1fr}}

.tbl{width:100%;border-collapse:collapse;font-size:.88rem}
.tbl th{text-align:left;color:var(--muted);font-weight:600;padding:.5rem .6rem;border-bottom:1px solid var(--border)}
.tbl td{padding:.55rem .6rem;border-bottom:1px solid var(--border)}
.tbl tr:hover td{background:#F9FAFB}
.tbl .empty{text-align:center;color:var(--muted);padding:1.5rem}

/* ── 按钮/表单 ── */
.btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1rem;border-radius:8px;border:none;cursor:pointer;font-size:.88rem;text-decoration:none;transition:all .2s}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark)}
.btn-outline{background:#fff;color:var(--blue);border:1px solid var(--blue)}
.btn-outline:hover{background:var(--blue);color:#fff}
.btn-danger{background:var(--red);color:#fff}
.btn-danger:hover{background:#C94F35}
.btn-sm{padding:.3rem .7rem;font-size:.8rem}
.btn-block{width:100%;justify-content:center;padding:.7rem}
.btn:disabled{opacity:.5;cursor:not-allowed}

.form-item{margin-bottom:1rem}
.form-item label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem}
.form-item input,.form-item select,.form-item textarea{width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem;font-family:inherit}
.form-item input:focus,.form-item select:focus,.form-item textarea:focus{outline:none;border-color:var(--blue)}
.form-item textarea{min-height:90px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:900px){.form-row{grid-template-columns:1fr}}

.alert{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.88rem}
.alert-error{background:#FEF2F0;color:#C94F35;border:1px solid #F5C6BB}
.alert-success{background:#EDF7EF;color:#1D9E57;border:1px solid #BFE3C9}

/* ── 徽章状态 ── */
.tag{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}
.tag-blue{background:#EEF2FF;color:var(--blue)}
.tag-green{background:#EDF7EF;color:#1D9E57}
.tag-gray{background:#F3F4F6;color:var(--muted)}
.tag-red{background:#FEF2F0;color:var(--red)}

/* ── 工具栏 ── */
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:.8rem;flex-wrap:wrap}
.toolbar .right{display:flex;gap:.6rem;flex-wrap:wrap}

/* ── 富文本工具条 ── */
.editor-toolbar{display:flex;gap:.3rem;flex-wrap:wrap;padding:.5rem;background:#F9FAFB;border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0}
.editor-toolbar button{background:#fff;border:1px solid var(--border);border-radius:6px;padding:.25rem .55rem;cursor:pointer;font-size:.85rem}
.editor-toolbar button:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
#editor{min-height:320px;border:1px solid var(--border);border-radius:0 0 8px 8px;padding:1rem;overflow-y:auto;background:#fff;font-size:.95rem;line-height:1.8}
#editor img{max-width:100%;border-radius:8px}
#editor:focus{outline:none;border-color:var(--blue)}

/* ── 文件浏览 ── */
.file-path{background:#fff;border:1px solid var(--border);border-radius:8px;padding:.6rem .9rem;font-size:.85rem;margin-bottom:1rem;word-break:break-all}
.file-list{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.file-item{display:flex;align-items:center;gap:.8rem;padding:.6rem 1rem;border-bottom:1px solid var(--border);font-size:.88rem}
.file-item:hover{background:#F9FAFB}
.file-item .name{flex:1;word-break:break-all}
.file-item .size{color:var(--muted);font-size:.8rem;width:90px;text-align:right}
.file-item a{color:var(--blue);text-decoration:none;font-size:.82rem}

/* ── 分页 ── */
.pager{display:flex;gap:.4rem;margin-top:1rem;align-items:center}
.pager a,.pager span{display:inline-block;padding:.3rem .7rem;border:1px solid var(--border);border-radius:6px;text-decoration:none;color:var(--text);font-size:.85rem;background:#fff}
.pager a:hover{border-color:var(--blue);color:var(--blue)}
.pager .cur{background:var(--blue);color:#fff;border-color:var(--blue)}
