/* ===== 升级后台（编辑入口）样式 ===== */
#admin-fab{
  display: none; /* 隐藏模式：默认不显示，仅 ?admin=1 时由 admin.js 显示 */
  position: fixed; right: 16px; bottom: 84px; z-index: 9990;
  width: 52px; height: 52px; border-radius: 50%;
  border: none; cursor: pointer;
  background: #1f4e79; color: #fff; font-size: 24px; line-height: 52px;
  box-shadow: 0 6px 18px rgba(31,78,121,.4);
}
#admin-fab:hover{ background: #2a629b; }

#admin-mask{
  position: fixed; inset: 0; z-index: 9991;
  background: rgba(15,23,42,.55);
  display: none;
}
#admin-mask.open{ display: block; }

#admin-panel{
  position: fixed; inset: 0; z-index: 9992;
  margin: auto;
  width: min(1100px, 96vw); height: min(92vh, 880px);
  background: #f4f6fb; border-radius: 14px; overflow: hidden;
  display: none; flex-direction: column;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  font-family: -apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
#admin-panel.open{ display: flex; }

.admin-top{
  display: flex; align-items: center; gap: 10px;
  padding: 12px 18px; background: #1f4e79; color: #fff;
}
.admin-top h2{ margin: 0; font-size: 16px; font-weight: 600; flex: 1; }
.admin-top .atip{ font-size: 12px; opacity: .8; }
.admin-top button{
  border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff;
  padding: 6px 12px; border-radius: 7px; cursor: pointer; font-size: 13px;
}
.admin-top button:hover{ background: rgba(255,255,255,.15); }
.admin-top button.primary{ background: #2e9b5b; border-color: #2e9b5b; }
.admin-top button.primary:hover{ background: #36b16a; }
.admin-top button.danger{ background: transparent; border-color: #ef6b6b; color: #ffd2d2; }
.admin-top button.danger:hover{ background: rgba(239,107,107,.2); }

.admin-body{ flex: 1; display: flex; min-height: 0; }

.admin-nav{
  width: 200px; background: #15243c; color: #cbd5e1;
  overflow-y: auto; padding: 10px 0; flex-shrink: 0;
}
.admin-nav .nav-group{ font-size: 11px; letter-spacing: 1px; color: #64748b; padding: 12px 16px 4px; }
.admin-nav .nav-item{
  padding: 9px 16px; cursor: pointer; font-size: 14px;
  display: flex; align-items: center; gap: 8px; border-left: 3px solid transparent;
}
.admin-nav .nav-item:hover{ background: rgba(255,255,255,.06); }
.admin-nav .nav-item.active{ background: rgba(46,155,91,.18); border-left-color: #2e9b5b; color: #fff; }
.admin-nav .nav-item .ic{ font-size: 16px; }

.admin-main{ flex: 1; overflow-y: auto; padding: 18px 22px 40px; }
.admin-main h3.sec-h{ margin: 0 0 4px; font-size: 16px; color: #1f4e79; }
.admin-main .sec-sub{ margin: 0 0 14px; font-size: 12px; color: #64748b; }

.admin-card{
  background: #fff; border: 1px solid #e2e8f0; border-radius: 10px;
  padding: 14px 16px; margin-bottom: 14px;
}
.admin-card .ac-head{ display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.admin-card .ac-head .tt{ font-weight: 600; color: #1f4e79; font-size: 14px; }
.admin-card .ac-head .tg{ font-size: 11px; color: #94a3b8; }

.field{ margin-bottom: 10px; }
.field > label{ display: block; font-size: 12px; color: #475569; margin-bottom: 4px; font-weight: 500; }
.field input[type=text], .field input[type=number], .field textarea, .field select{
  width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #cbd5e1;
  border-radius: 7px; font-size: 13px; font-family: inherit; color: #1e293b; background: #fff;
}
.field textarea{ resize: vertical; min-height: 64px; line-height: 1.5; }
.field.row2{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.field.row3{ display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
.field .hint{ font-size: 11px; color: #94a3b8; margin-top: 3px; }
.field textarea.err{ border-color: #ef4444; background: #fef2f2; }

.mini-btn{
  border: 1px solid #cbd5e1; background: #f8fafc; color: #334155;
  padding: 5px 10px; border-radius: 6px; cursor: pointer; font-size: 12px;
}
.mini-btn:hover{ background: #eef2f7; }
.mini-btn.add{ border-color: #2e9b5b; color: #1d7a43; background: #ecfdf3; }
.mini-btn.add:hover{ background: #d8f7e4; }
.mini-btn.del{ border-color: #ef6b6b; color: #c0392b; background: #fef2f2; }
.mini-btn.del:hover{ background: #fde2e2; }
.mini-btn.up, .mini-btn.down{ color:#475569; }

.admin-cards-list > .admin-card{ border-left: 3px solid #1f4e79; }
.admin-cards-list .card-idx{ font-size: 11px; color:#94a3b8; }

.admin-empty{ color:#94a3b8; font-size:13px; padding:20px; text-align:center; }

.admin-foot{
  position: sticky; bottom: 0; background: #eef2f7; border-top: 1px solid #dce3ec;
  padding: 10px 18px; display: flex; gap: 10px; align-items: center; justify-content: flex-end;
}
.admin-foot .status{ margin-right: auto; font-size: 12px; color: #64748b; }

.admin-banner{
  background:#fff7e6; border:1px solid #ffe1a6; color:#8a5a00;
  padding:8px 12px; border-radius:8px; font-size:12px; margin-bottom:14px;
}

/* 颜色块预览 */
.color-dot{ display:inline-block; width:14px; height:14px; border-radius:3px; vertical-align:-2px; margin-left:6px; border:1px solid rgba(0,0,0,.1); }
