/* ==========================================================
   一和在线 · 管理后台样式（admin/admin.css）
   ========================================================== */
:root{
  --ad-primary:#1A6AFF; --ad-primary-d:#0E3E96; --ad-primary-soft:#eaf1ff;
  --ad-bg:#f2f5fa; --ad-card:#fff; --ad-line:#e6ebf3;
  --ad-text:#1a2233; --ad-text-2:#5c6a85; --ad-text-3:#98a3b8;
  --ad-ok:#12a05a; --ad-warn:#f08a1a; --ad-err:#e0356f; --ad-purple:#6b4cf0;
  --ad-side:216px;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
  background:var(--ad-bg);color:var(--ad-text);font-size:14px;}
a{text-decoration:none;color:inherit;}

/* ---------- 布局 ---------- */
.ad-top{position:fixed;left:0;right:0;top:0;height:56px;z-index:30;
  display:flex;align-items:center;gap:14px;padding:0 18px;
  background:linear-gradient(90deg,#1A6AFF,#5AA4FF);color:#fff;box-shadow:0 2px 12px rgba(14,62,150,.2);}
.ad-logo{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:800;letter-spacing:.5px;}
.ad-logo svg{width:26px;height:26px;}
.ad-logo em{font-style:normal;font-size:10px;opacity:.75;letter-spacing:1px;}
.ad-top-r{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px;}
.ad-top-r b{font-weight:700;}
.ad-cloud{font-size:12px;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;white-space:nowrap;cursor:pointer}
.ad-cloud.ok{background:#0f9d58}
.ad-cloud.err{background:#d93025}
.ad-cloud.wait{background:#b06000}
@media(max-width:640px){.ad-cloud{display:none}}
.ad-out{padding:5px 12px;border-radius:6px;background:rgba(255,255,255,.16);cursor:pointer;font-size:12.5px;}
.ad-out:hover{background:rgba(255,255,255,.28);}

.ad-side{position:fixed;left:0;top:56px;bottom:0;width:var(--ad-side);z-index:20;overflow-y:auto;
  background:#fff;border-right:1px solid var(--ad-line);padding:10px 0 40px;}
.ad-group{padding:12px 16px 6px;font-size:11px;color:var(--ad-text-3);letter-spacing:1px;}
.ad-nav{display:flex;align-items:center;gap:9px;padding:9px 16px;cursor:pointer;
  font-size:13.5px;color:var(--ad-text-2);border-left:3px solid transparent;}
.ad-nav:hover{background:#f6f9ff;color:var(--ad-primary);}
.ad-nav.is-on{background:var(--ad-primary-soft);color:var(--ad-primary);font-weight:700;border-left-color:var(--ad-primary);}
.ad-nav i{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;}
.ad-nav i svg{width:15px;height:15px;}
.ad-nav .dot{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  background:var(--ad-err);color:#fff;font-size:10.5px;font-weight:700;font-style:normal;
  display:inline-flex;align-items:center;justify-content:center;}

.ad-main{margin-left:var(--ad-side);padding:70px 20px 40px;min-height:100vh;}
.ad-head{display:flex;align-items:flex-end;gap:12px;margin-bottom:14px;}
.ad-h1{font-size:19px;font-weight:800;}
.ad-sub{font-size:12px;color:var(--ad-text-3);padding-bottom:2px;}
.ad-head-r{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}

/* ---------- 卡片 / 统计 ---------- */
.ad-card{background:var(--ad-card);border-radius:12px;padding:16px;box-shadow:0 2px 12px rgba(22,87,208,.06);margin-bottom:14px;}
.ad-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px;margin-bottom:14px;}
.ad-stat{background:#fff;border-radius:12px;padding:15px 16px;box-shadow:0 2px 12px rgba(22,87,208,.06);
  border-left:3px solid var(--ad-primary);}
.ad-stat.g{border-left-color:var(--ad-ok);} .ad-stat.o{border-left-color:var(--ad-warn);}
.ad-stat.p{border-left-color:var(--ad-purple);} .ad-stat.r{border-left-color:var(--ad-err);}
.ad-stat b{display:block;font-size:22px;font-weight:800;letter-spacing:.5px;font-variant-numeric:tabular-nums;}
.ad-stat span{display:block;margin-top:4px;font-size:12px;color:var(--ad-text-3);}

/* ---------- 表格 ---------- */
.ad-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;}
.ad-input,.ad-select,.ad-textarea{padding:7px 10px;border:1px solid var(--ad-line);border-radius:7px;
  font-size:13px;color:var(--ad-text);background:#fff;outline:none;font-family:inherit;}
.ad-input:focus,.ad-select:focus,.ad-textarea:focus{border-color:var(--ad-primary);}
.ad-input{width:170px;} .ad-textarea{width:100%;min-height:78px;resize:vertical;line-height:1.6;}
/* ---------- 分组展示（分类按模块归类） ---------- */
.ad-grp{margin-bottom:16px;border:1px solid var(--ad-line);border-radius:10px;overflow:hidden;}
.ad-grp-h{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#f3f7ff;border-bottom:1px solid var(--ad-line);}
.ad-grp-t{font-size:13px;font-weight:800;color:var(--ad-text);}
.ad-grp-n{font-size:11.5px;color:var(--ad-text-2);background:#fff;border:1px solid var(--ad-line);
  border-radius:20px;padding:1px 9px;}
.ad-grp .ad-wrap{border:none;}
/* 列表内行内编辑的小输入框 */
.ad-input.xs{width:100%;min-width:108px;max-width:190px;padding:5px 8px;font-size:12.5px;}
.ad-input.xs:hover{border-color:#b9cdff;background:#fbfdff;}
.ad-input.xs:focus{border-color:var(--ad-primary);background:#fff;box-shadow:0 0 0 3px rgba(22,87,208,.1);}
.ad-btn{padding:7px 14px;border:none;border-radius:7px;background:var(--ad-primary);color:#fff;
  font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;}
.ad-btn:hover{background:var(--ad-primary-d);}
.ad-btn.ghost{background:#fff;color:var(--ad-text-2);border:1px solid var(--ad-line);}
.ad-btn.ghost:hover{background:#f6f9ff;color:var(--ad-primary);border-color:#c9dcff;}
.ad-btn.ok{background:var(--ad-ok);} .ad-btn.warn{background:var(--ad-warn);}
.ad-btn.err{background:var(--ad-err);} .ad-btn.sm{padding:4px 9px;font-size:12px;border-radius:6px;}

.ad-tb{width:100%;border-collapse:collapse;font-size:13px;}
.ad-tb th{background:#f7f9fd;color:var(--ad-text-2);font-weight:600;text-align:left;
  padding:10px 10px;white-space:nowrap;border-bottom:1px solid var(--ad-line);font-size:12.5px;}
.ad-tb td{padding:10px;border-bottom:1px solid #f0f3f8;color:var(--ad-text-2);vertical-align:middle;}
.ad-tb tr:hover td{background:#fafcff;}
.ad-tb .t-main{color:var(--ad-text);font-weight:600;}
.ad-tb .ops{white-space:nowrap;}
.ad-tb .ops .ad-btn{margin-right:5px;}
.ad-wrap{overflow-x:auto;}
.ad-empty{padding:38px 0;text-align:center;color:var(--ad-text-3);font-size:13px;}

.tag{display:inline-block;padding:2px 8px;border-radius:5px;font-size:11.5px;font-weight:600;}
.tag.ok{background:#e8f8ef;color:var(--ad-ok);}
.tag.warn{background:#fff4e6;color:var(--ad-warn);}
.tag.err{background:#fdeaf1;color:var(--ad-err);}
.tag.info{background:var(--ad-primary-soft);color:var(--ad-primary);}
.tag.gray{background:#f0f3f8;color:var(--ad-text-3);}
.tag.purple{background:#f1edff;color:var(--ad-purple);}

/* ---------- 弹窗 ---------- */
.ad-mask{position:fixed;inset:0;background:rgba(15,25,45,.42);z-index:60;display:none;
  align-items:center;justify-content:center;padding:20px;}
.ad-mask.is-show{display:flex;}
.ad-modal{background:#fff;border-radius:12px;width:100%;max-width:520px;max-height:86vh;overflow-y:auto;
  box-shadow:0 20px 50px rgba(15,25,45,.25);}
.ad-modal-h{display:flex;align-items:center;padding:15px 18px;border-bottom:1px solid var(--ad-line);}
.ad-modal-h h3{font-size:15px;font-weight:800;}
.ad-modal-h .x{margin-left:auto;cursor:pointer;color:var(--ad-text-3);font-size:20px;line-height:1;}
.ad-modal-b{padding:16px 18px;}
.ad-modal-f{padding:12px 18px 18px;display:flex;gap:9px;justify-content:flex-end;}
.ad-field{margin-bottom:12px;}
.ad-field label{display:block;margin-bottom:5px;font-size:12.5px;color:var(--ad-text-2);font-weight:600;}
.ad-field .ad-input,.ad-field .ad-select,.ad-field .ad-textarea{width:100%;}
.ad-field .hint{font-size:11px;color:var(--ad-text-3);margin-top:4px;}

/* ---------- 登录 ---------- */
.ad-login{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#1A6AFF,#4a8bf5);padding:20px;}
.ad-login[hidden],[hidden]{display:none !important;}
.ad-login-box{width:100%;max-width:380px;background:#fff;border-radius:14px;padding:30px 28px;
  box-shadow:0 20px 50px rgba(14,62,150,.28);}
.ad-login-box h2{font-size:20px;font-weight:800;text-align:center;margin-bottom:6px;}
.ad-login-box p{text-align:center;font-size:12.5px;color:var(--ad-text-3);margin-bottom:22px;}
.ad-login-box .ad-field .ad-input{width:100%;padding:10px 12px;}
.ad-login-box .ad-btn{width:100%;padding:11px;font-size:15px;margin-top:6px;}
.ad-login-tip{margin-top:14px;text-align:center;font-size:11.5px;color:var(--ad-text-3);line-height:1.7;}

/* ---------- 提示 ---------- */
.ad-toast{position:fixed;left:50%;top:26px;transform:translateX(-50%) translateY(-14px);z-index:99;
  background:rgba(26,34,51,.92);color:#fff;padding:10px 18px;border-radius:8px;font-size:13px;
  opacity:0;transition:.24s;pointer-events:none;}
.ad-toast.is-show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---------- 详情块 ---------- */
.ad-kv{display:grid;grid-template-columns:96px 1fr;gap:8px 10px;font-size:13px;}
.ad-kv dt{color:var(--ad-text-3);}
.ad-kv dd{color:var(--ad-text);word-break:break-all;}

@media (max-width:900px){
  :root{--ad-side:0px;}
  .ad-side{position:fixed;left:-230px;width:230px;transition:.24s;box-shadow:6px 0 20px rgba(15,25,45,.12);}
  .ad-side.is-open{left:0;}
  .ad-main{margin-left:0;padding:66px 12px 30px;}
  .ad-burger{display:inline-flex !important;}
}
.ad-burger{display:none;margin-right:4px;cursor:pointer;}

/* =========================================================
   课程二级归类（大模块 → 分类项）+ 内容上传分窗口
   ========================================================= */
.ad-subgrp{margin:10px 12px 12px;border:1px solid var(--ad-line);border-radius:9px;overflow:hidden;background:#fff;}
.ad-subgrp-h{display:flex;align-items:center;gap:8px;padding:7px 11px;background:#f8fafd;border-bottom:1px solid var(--ad-line);}
.ad-subgrp-t{font-size:12.5px;font-weight:700;color:var(--ad-text);}
.ad-subgrp .ad-wrap{border:none;}

/* 内容上传：左板块 / 右编辑窗口 */
.cu-wrap{display:flex;gap:14px;align-items:flex-start;}
.cu-col{min-width:0;}
.cu-left{flex:0 0 290px;}
.cu-right{flex:1;}
.cu-block-t{font-size:12.5px;font-weight:800;color:var(--ad-text);margin-bottom:8px;
  padding-left:8px;border-left:3px solid var(--ad-blue,#1A6AFF);}
.cu-hint{font-size:12px;color:var(--ad-text-3);margin:-2px 0 10px;line-height:1.7;}
.cu-forms{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.cu-card{border:1px solid var(--ad-line);border-radius:8px;padding:8px 9px;cursor:pointer;background:#fff;transition:.16s;}
.cu-card:hover{border-color:#9dbdf5;background:#f7faff;}
.cu-card.is-on{border-color:#1A6AFF;background:#eef4ff;}
.cu-card b{display:block;font-size:12px;color:var(--ad-text);line-height:1.4;}
.cu-n{display:inline-block;margin-top:4px;font-size:11px;color:var(--ad-text-3);}
.cu-card.is-on .cu-n{color:#1A6AFF;}
.cu-list{max-height:280px;overflow:auto;border:1px solid var(--ad-line);border-radius:8px;}
.cu-item{padding:9px 10px;border-bottom:1px dashed var(--ad-line);cursor:pointer;}
.cu-item:last-child{border-bottom:none;}
.cu-item:hover{background:#f7faff;}
.cu-item.is-on{background:#eef4ff;}
.cu-item b{display:block;font-size:12.5px;color:var(--ad-text);}
.cu-item span{font-size:11px;color:var(--ad-text-3);}

.cu-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;background:#f6f8fc;border:1px solid var(--ad-line);border-bottom:none;border-radius:8px 8px 0 0;}
.cu-tool{border:1px solid var(--ad-line);background:#fff;border-radius:6px;padding:4px 9px;font-size:12px;cursor:pointer;color:var(--ad-text);}
.cu-tool:hover{border-color:#1A6AFF;color:#1A6AFF;}
.cu-tool.ok{background:#eef4ff;border-color:#c9dcff;color:#1A6AFF;font-weight:700;}
.cu-editor{border:1px solid var(--ad-line);border-radius:0 0 8px 8px;min-height:260px;padding:12px 14px;
  font-size:13.5px;line-height:1.85;color:var(--ad-text);background:#fff;outline:none;overflow:auto;}
.cu-editor:empty:before{content:attr(data-ph);color:#b6bfd0;}
.cu-editor h3,.cu-editor h4{margin:10px 0 6px;font-weight:800;}
.cu-editor p{margin:6px 0;}
.cu-editor ul,.cu-editor ol{margin:6px 0 6px 22px;}
.cu-editor blockquote{margin:8px 0;padding:8px 12px;background:#f7f9fd;border-left:3px solid #1A6AFF;color:#5b6780;}
.cu-editor img{max-width:100%;border-radius:8px;margin:8px 0;display:block;}
.cu-editor table{border-collapse:collapse;}
.cu-editor td,.cu-editor th{border:1px solid #dfe6f1;padding:6px 8px;}

.cu-ups{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.cu-up{border:1px solid var(--ad-line);border-radius:9px;overflow:hidden;background:#fff;}
.cu-up-h{padding:7px 10px;background:#f6f8fc;border-bottom:1px solid var(--ad-line);font-size:12.5px;font-weight:800;}
.cu-up-h b{display:block;font-weight:400;font-size:11px;color:var(--ad-text-3);margin-top:2px;}
.cu-up-b{padding:10px;}
.cu-up-b input[type=file]{width:100%;font-size:11.5px;}
.cu-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.cu-thumb{position:relative;width:78px;}
.cu-thumb img{width:78px;height:58px;object-fit:cover;border-radius:6px;border:1px solid var(--ad-line);background:#f2f5fa;}
.cu-thumb .x{position:absolute;right:-4px;top:-6px;width:18px;height:18px;line-height:16px;text-align:center;
  border-radius:50%;background:#e0356f;color:#fff;font-size:12px;cursor:pointer;}
.cu-thumb .ins{position:absolute;left:0;bottom:0;right:0;text-align:center;font-size:10.5px;color:#fff;
  background:rgba(22,87,208,.85);border-radius:0 0 6px 6px;cursor:pointer;padding:2px 0;}
.cu-player{width:100%;height:44px;margin-top:8px;}
.cu-quick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 10px;font-size:12px;color:var(--ad-text-3);}

.cu-tpl{white-space:pre-wrap;word-break:break-all;background:#f7f9fd;border:1px solid var(--ad-line);
  border-radius:8px;padding:10px 12px;font-size:11.5px;line-height:1.75;color:#5b6780;max-height:230px;overflow:auto;}
.cu-preview{margin-top:10px;}
.cu-ok{background:#eafaf0;border:1px solid #b9e6cb;color:#10794a;border-radius:8px;padding:8px 10px;font-size:12.5px;}
.cu-q{font-size:12.5px;color:var(--ad-text);margin:8px 0;line-height:1.7;}

@media (max-width:1100px){
  .cu-wrap{flex-direction:column;}
  .cu-left{flex:none;width:100%;}
  .cu-ups{grid-template-columns:1fr;}
}

/* ============ 首页配置视图 ============ */
.hp-cfg-t{
  font-size:13.5px;font-weight:800;color:var(--ad-text);margin:18px 0 6px;
  padding-left:9px;border-left:3px solid var(--ad-primary);line-height:1.2;
}
.hp-cfg-t:first-child{margin-top:2px;}
.hp-cfg-hint{margin:0 0 10px;padding-left:12px;}
.hp-cfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 14px;}
.hp-cfg-grid .ad-field{margin-bottom:0;}
.hp-cfg-grid .hint{font-size:10.5px;color:#a9b3c5;margin:4px 0 0;}
.hp-cfg-dot{
  display:inline-block;width:14px;height:14px;border-radius:4px;margin-left:6px;
  vertical-align:-2px;border:1px solid rgba(0,0,0,.08);
}

/* ============ 专业图标选择器（分类/课程/模块的「图标」字段） ============ */
.ad-ic-cell{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:7px;color:#fff;
  background:linear-gradient(135deg,#5AA4FF,#1A6AFF);
}
.ad-ic-cell svg{width:16px;height:16px;display:block;}

.ad-iconpick{
  border:1px solid var(--ad-line);border-radius:10px;background:#fbfcff;padding:10px;
}
.ad-ip-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px;}
.ad-ip-prev{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:34px;height:34px;border-radius:9px;color:#fff;
  background:linear-gradient(135deg,#5AA4FF,#1A6AFF);box-shadow:0 2px 8px rgba(26,106,255,.25);
}
.ad-ip-prev svg{width:20px;height:20px;display:block;}
.ad-ip-cur{font-size:12px;color:var(--ad-text-2);font-weight:600;margin-right:auto;}
.ad-ip-search{width:200px !important;}
.ad-ip-grid{max-height:260px;overflow-y:auto;}
.ad-ip-grp{margin-bottom:8px;}
.ad-ip-gt{
  display:block;font-size:11px;color:var(--ad-text-3);letter-spacing:1px;
  margin:0 0 6px;padding-left:2px;
}
.ad-ip-item{
  display:inline-flex;flex-direction:column;align-items:center;gap:3px;
  width:62px;padding:7px 2px 5px;margin:0 5px 5px 0;cursor:pointer;
  border:1px solid var(--ad-line);border-radius:9px;background:#fff;
  color:var(--ad-text-2);font-family:inherit;vertical-align:top;
}
.ad-ip-item:hover{border-color:#b9d0ff;background:#f5f9ff;color:var(--ad-primary);}
.ad-ip-item svg{width:19px;height:19px;display:block;}
.ad-ip-item em{font-style:normal;font-size:9.5px;line-height:1.1;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56px;}
.ad-ip-item.is-on{
  border-color:var(--ad-primary);background:var(--ad-primary-soft);
  color:var(--ad-primary);font-weight:700;box-shadow:0 0 0 2px rgba(26,106,255,.12);
}
.ad-iconpick .hint{margin-top:8px;}

/* ============ 标头展示图选择器（模块管理「标头展示图」字段） ============ */
.ad-coverpick{border:1px solid var(--ad-line);border-radius:10px;background:#fbfcff;padding:10px;}
.ad-cp-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px;}
.ad-cp-prev{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:86px;height:48px;border-radius:8px;overflow:hidden;
  background:linear-gradient(135deg,#dfe9fb,#c9dbfa);
}
.ad-cp-prev img{width:100%;height:100%;object-fit:cover;display:block;}
.ad-cp-empty{font-size:11px;color:#7f93b3;font-weight:700;}
.ad-cp-cur{font-size:12px;color:var(--ad-text-2);font-weight:600;margin-right:auto;}
.ad-cp-row{margin-bottom:10px;}
.ad-cp-row .ad-input{width:100%;}
.ad-cp-gt{display:block;font-size:11px;color:var(--ad-text-3);letter-spacing:1px;margin:0 0 6px;padding-left:2px;}
.ad-cp-items{display:flex;flex-wrap:wrap;}
.ad-cp-item{
  display:inline-flex;flex-direction:column;align-items:center;gap:3px;
  width:108px;padding:5px;margin:0 7px 7px 0;cursor:pointer;
  border:1px solid var(--ad-line);border-radius:9px;background:#fff;
  color:var(--ad-text-2);font-family:inherit;
}
.ad-cp-item:hover{border-color:#b9d0ff;background:#f5f9ff;}
.ad-cp-item img{width:98px;height:50px;object-fit:cover;display:block;border-radius:5px;}
.ad-cp-item em{font-style:normal;font-size:10px;line-height:1.2;}
.ad-cp-item.is-on{
  border-color:var(--ad-primary);background:var(--ad-primary-soft);
  color:var(--ad-primary);font-weight:700;box-shadow:0 0 0 2px rgba(26,106,255,.12);
}
.ad-cov-th{width:52px;height:26px;object-fit:cover;border-radius:5px;display:block;}

/* ============ 媒体上传：去向标签 / 外链输入 / 上传中提示 ============ */
.cu-mtag{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap;}
.cu-mtag em{font-style:normal;font-size:11px;color:var(--ad-text-3);
  max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cu-ext{margin-top:7px;font-size:12px;}
.cu-busy{padding:14px 0;text-align:center;color:var(--ad-primary);font-size:12.5px;font-weight:600;}
.cu-player.v{height:auto;max-height:220px;background:#000;border-radius:8px;}

/* ============ 安全提醒条 ============ */
.sec-hint{
  margin:0 0 12px;padding:10px 14px;border-radius:10px;font-size:12.5px;line-height:1.6;
  color:#8a4b00;background:#fff7e8;border:1px solid #ffd9a0;
}
.sec-hint b{color:#c2410c;}
