*{margin:0;padding:0;box-sizing:border-box}
:root{--red:#C8102E;--red-light:#E63946;--bd:#e5e5e5;--t2:#666;--t3:#999}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:#f0f2f5;color:#1a1a1a;line-height:1.6}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;outline:none}
input,textarea,select{font-family:inherit;outline:none}
.admin-top{background:#1D2129;color:#fff;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 20px}
.admin-top .brand{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px}
.admin-top .brand .dot{width:10px;height:10px;background:var(--red);border-radius:50%;display:inline-block}
.admin-top .ops{display:flex;gap:14px;font-size:13px}
.admin-top .ops a{color:#C9CDD4}
.admin-top .ops a:hover{color:#fff}
.admin-layout{display:flex;min-height:calc(100vh - 52px)}
.admin-side{width:200px;background:#1D2129;color:#C9CDD4;padding:12px 0;flex-shrink:0}
.admin-side a{display:block;padding:10px 20px;font-size:13px;color:#C9CDD4;border-left:3px solid transparent;transition:.2s}
.admin-side a:hover{background:#2E333D;color:#fff}
.admin-side a.active{background:#2E333D;color:#fff;border-left-color:var(--red);font-weight:600}
.admin-main{flex:1;padding:24px;overflow-x:auto}
.admin-main h3{font-size:18px;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--bd)}
.card{background:#fff;border-radius:8px;padding:20px;margin-bottom:16px;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.row{margin-bottom:14px}
.row label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}
.row input[type=text],.row input[type=url],.row input[type=password],.row textarea,.row select{width:100%;padding:9px 12px;border:1px solid var(--bd);border-radius:6px;font-size:13px;background:#fff}
.row input:focus,.row textarea:focus{border-color:var(--red)}
.row textarea{resize:vertical;min-height:100px;line-height:1.7}
.hint{font-size:11px;color:var(--t3);margin-top:4px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.btn{padding:8px 18px;border-radius:6px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;transition:.2s}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:var(--red-light)}
.btn-outline{background:#fff;color:var(--red);border:1.5px solid var(--red)}
.btn-outline:hover{background:#FEF0F0}
.btn-gray{background:#f0f0f0;color:var(--t2)}
.btn-sm{padding:4px 10px;font-size:12px}
.table{width:100%;border-collapse:collapse;font-size:13px}
.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--bd);vertical-align:middle}
.table th{background:#fafafa;font-weight:600;color:var(--t2);font-size:12px}
.table tr:hover{background:#fafafa}
.tag{display:inline-block;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:600;background:#FEF0F0;color:var(--red)}
.tag-pin{background:#FFF3CD;color:#856404}
.tag-unpin{background:#f0f0f0;color:#999}
.alert{padding:10px 14px;border-radius:6px;font-size:13px;margin-bottom:14px}
.alert-ok{background:#E7F7EC;color:#1E7B3C;border:1px solid #B7E4C7}
.alert-err{background:#FDECEA;color:#B42318;border:1px solid #F5C2C0}
.alert-warn{background:#FFF8E1;color:#856404;border:1px solid #FFE69C}
.empty{text-align:center;padding:40px 20px;color:var(--t3);font-size:13px}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#C8102E,#8B0000)}
.login-card{background:#fff;width:360px;max-width:92vw;padding:32px 28px;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.login-card h1{font-size:20px;text-align:center;margin-bottom:6px}
.login-card .sub{text-align:center;font-size:12px;color:var(--t3);margin-bottom:20px}
.login-card .row input{width:100%;padding:10px 12px;border:1px solid var(--bd);border-radius:6px;font-size:14px;margin-bottom:2px}
.login-card .btn{width:100%;padding:11px;font-size:14px;margin-top:10px}
.chat-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;padding:12px;background:#f7f8fa;border-radius:6px}
.chat-item{padding:10px 14px;border-radius:8px;font-size:13px;max-width:82%;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.chat-item.user{align-self:flex-start;background:#fff;border-left:3px solid var(--red)}
.chat-item.admin{align-self:flex-end;background:#FEF0F0;border-right:3px solid var(--red)}
.chat-item .tm{font-size:10px;color:var(--t3);margin-top:4px}
.reply-row{display:flex;gap:8px;margin-top:12px}
.reply-row input{flex:1;padding:9px 12px;border:1px solid var(--bd);border-radius:6px;font-size:13px}
.sessions{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;margin-bottom:14px}
.session{padding:9px 12px;border:1px solid var(--bd);border-radius:6px;font-size:12px;cursor:pointer;background:#fff}
.session:hover,.session.active{border-color:var(--red);background:#FEF0F0}
.session .meta{color:var(--t3);font-size:11px;margin-top:3px}
pre.log{font-size:12px;color:var(--t2);background:#fafafa;padding:12px;border-radius:6px;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-all}
@media(max-width:860px){
  .admin-layout{flex-direction:column}
  .admin-side{width:100%;display:flex;flex-wrap:wrap;padding:8px;gap:2px}
  .admin-side a{padding:7px 12px;font-size:12px;border-left:none;border-radius:4px}
  .admin-side a.active{background:var(--red);color:#fff}
  .admin-main{padding:16px}
}
.chat-img{max-width:220px;max-height:220px;border-radius:6px;cursor:pointer;display:block;margin:4px 0;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.reply-row{display:flex;gap:8px;margin-top:12px;align-items:center}
.reply-row #adminImgBtn{flex-shrink:0}