|
@@ -1,10 +1,11 @@
|
|
|
-:root { font-family: Inter,'SF Pro Display','PingFang SC','Microsoft YaHei',sans-serif; color:#18233a; background:#f5f7fb; font-synthesis:none; --blue:#245bd6; --blue-dark:#1646b5; --ink:#17213a; --muted:#78839a; --line:#e4e8f0; --paper:#fff; }
|
|
|
|
|
|
|
+:root { font-family: Inter,'SF Pro Display','PingFang SC','Microsoft YaHei',sans-serif; color:#18233a; background:#f5f7fb; font-synthesis:none; --blue:#245bd6; --blue-dark:#1646b5; --ink:#17213a; --muted:#78839a; --line:#e4e8f0; --paper:#fff; --button-radius:8px; --button-height:44px; --button-small-height:34px; --button-shadow:0 8px 25px rgba(36,91,214,.18); }
|
|
|
* { box-sizing:border-box; }
|
|
* { box-sizing:border-box; }
|
|
|
body { margin:0; min-width:320px; min-height:100vh; background:radial-gradient(circle at 85% 6%,rgba(56,107,228,.06),transparent 24%),#f5f7fb; }
|
|
body { margin:0; min-width:320px; min-height:100vh; background:radial-gradient(circle at 85% 6%,rgba(56,107,228,.06),transparent 24%),#f5f7fb; }
|
|
|
button,input,textarea,select { font:inherit; }
|
|
button,input,textarea,select { font:inherit; }
|
|
|
button,a { -webkit-tap-highlight-color:transparent; }
|
|
button,a { -webkit-tap-highlight-color:transparent; }
|
|
|
a { color:inherit; text-decoration:none; }
|
|
a { color:inherit; text-decoration:none; }
|
|
|
button { cursor:pointer; }
|
|
button { cursor:pointer; }
|
|
|
|
|
+button:focus-visible,a:focus-visible { outline:3px solid rgba(36,91,214,.22); outline-offset:2px; }
|
|
|
.app-shell { min-height:100vh; }
|
|
.app-shell { min-height:100vh; }
|
|
|
.topbar { height:72px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; border-bottom:1px solid rgba(220,225,235,.8); background:rgba(248,249,252,.82); backdrop-filter:blur(14px); position:sticky; top:0; z-index:20; }
|
|
.topbar { height:72px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; border-bottom:1px solid rgba(220,225,235,.8); background:rgba(248,249,252,.82); backdrop-filter:blur(14px); position:sticky; top:0; z-index:20; }
|
|
|
.logo-link { display:flex; }
|
|
.logo-link { display:flex; }
|
|
@@ -21,8 +22,8 @@ button { cursor:pointer; }
|
|
|
.topbar nav a { color:#5b6880; font-weight:500; height:100%; display:flex; align-items:center; position:relative; }
|
|
.topbar nav a { color:#5b6880; font-weight:500; height:100%; display:flex; align-items:center; position:relative; }
|
|
|
.topbar nav a.active { color:var(--blue); font-weight:600; }
|
|
.topbar nav a.active { color:var(--blue); font-weight:600; }
|
|
|
.topbar nav a.active:after { content:''; position:absolute; bottom:0; left:3px; right:3px; height:2px; background:var(--blue); }
|
|
.topbar nav a.active:after { content:''; position:absolute; bottom:0; left:3px; right:3px; height:2px; background:var(--blue); }
|
|
|
-.admin-nav-link { color:#805ad5!important; display:inline-flex; align-items:center; gap:6px; font-weight:600!important; }
|
|
|
|
|
-.admin-tag { background:#805ad5; color:#fff; font-size:10px; padding:2px 6px; border-radius:4px; margin-left:4px; font-weight:500; }
|
|
|
|
|
|
|
+.admin-nav-link { color:var(--blue)!important; display:inline-flex; align-items:center; gap:6px; font-weight:600!important; }
|
|
|
|
|
+.admin-tag { background:var(--blue); color:#fff; font-size:10px; padding:2px 6px; border-radius:4px; margin-left:4px; font-weight:500; }
|
|
|
.nav-muted { cursor:default; }
|
|
.nav-muted { cursor:default; }
|
|
|
.top-actions { margin-left:auto; display:flex; align-items:center; gap:13px; }
|
|
.top-actions { margin-left:auto; display:flex; align-items:center; gap:13px; }
|
|
|
.icon-button { border:0; background:transparent; color:#8d96a7; padding:7px; display:grid; place-items:center; border-radius:6px; }
|
|
.icon-button { border:0; background:transparent; color:#8d96a7; padding:7px; display:grid; place-items:center; border-radius:6px; }
|
|
@@ -35,15 +36,17 @@ button { cursor:pointer; }
|
|
|
.hero h1 { color:#19233a; font-size:clamp(39px,4.3vw,64px); line-height:1.18; letter-spacing:-.045em; margin:0; font-weight:300; }
|
|
.hero h1 { color:#19233a; font-size:clamp(39px,4.3vw,64px); line-height:1.18; letter-spacing:-.045em; margin:0; font-weight:300; }
|
|
|
.hero h1 em { font-style:normal; color:var(--blue); }
|
|
.hero h1 em { font-style:normal; color:var(--blue); }
|
|
|
.hero-copy>p:not(.eyebrow) { color:#7b8699; font-size:15px; margin:24px 0 30px; letter-spacing:.02em; }
|
|
.hero-copy>p:not(.eyebrow) { color:#7b8699; font-size:15px; margin:24px 0 30px; letter-spacing:.02em; }
|
|
|
-.primary-button,.secondary-button { border:0; border-radius:8px; min-height:44px; padding:0 19px; display:inline-flex; align-items:center; justify-content:center; gap:9px; font-weight:500; font-size:14px; transition:.2s ease; }
|
|
|
|
|
-.primary-button { background:var(--blue); color:#fff; box-shadow:0 8px 25px rgba(36,91,214,.18); }
|
|
|
|
|
|
|
+.primary-button,.secondary-button { border:0; border-radius:var(--button-radius); min-height:var(--button-height); padding:0 19px; display:inline-flex; align-items:center; justify-content:center; gap:9px; font-weight:500; font-size:14px; line-height:1; transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease; }
|
|
|
|
|
+.primary-button { background:var(--blue); color:#fff; box-shadow:var(--button-shadow); }
|
|
|
.primary-button:hover:not(:disabled) { background:var(--blue-dark); transform:translateY(-1px); }
|
|
.primary-button:hover:not(:disabled) { background:var(--blue-dark); transform:translateY(-1px); }
|
|
|
-.primary-button:disabled { opacity:.48; cursor:not-allowed; box-shadow:none; }
|
|
|
|
|
|
|
+.primary-button:active:not(:disabled) { transform:translateY(0); box-shadow:0 4px 14px rgba(36,91,214,.18); }
|
|
|
|
|
+.primary-button:disabled,.secondary-button:disabled { opacity:.48; cursor:not-allowed; box-shadow:none; }
|
|
|
.secondary-button { border:1px solid #dce2ed; color:#536077; background:#fff; }
|
|
.secondary-button { border:1px solid #dce2ed; color:#536077; background:#fff; }
|
|
|
-.secondary-button:hover { border-color:#bfc9da; }
|
|
|
|
|
-.small-button { min-height:34px; padding:0 12px; font-size:12px; }
|
|
|
|
|
-.highlight-button { background:linear-gradient(135deg,#245bd6,#5e3cd4); color:#fff; box-shadow:0 8px 25px rgba(94,60,212,.25); }
|
|
|
|
|
-.highlight-button:hover:not(:disabled) { background:linear-gradient(135deg,#1b4dbd,#4a2cae); }
|
|
|
|
|
|
|
+.secondary-button:hover:not(:disabled) { border-color:#bfc9da; background:#f8faff; color:#35435b; transform:translateY(-1px); }
|
|
|
|
|
+.secondary-button:active:not(:disabled) { transform:translateY(0); }
|
|
|
|
|
+.small-button { min-height:var(--button-small-height); padding:0 12px; font-size:12px; }
|
|
|
|
|
+.highlight-button { background:var(--blue); color:#fff; box-shadow:var(--button-shadow); }
|
|
|
|
|
+.highlight-button:hover:not(:disabled) { background:var(--blue-dark); }
|
|
|
.orbit { position:absolute; border:1px solid rgba(72,91,125,.18); border-color:rgba(72,91,125,.22) transparent transparent transparent; border-radius:50%; transform:rotate(-12deg); }
|
|
.orbit { position:absolute; border:1px solid rgba(72,91,125,.18); border-color:rgba(72,91,125,.22) transparent transparent transparent; border-radius:50%; transform:rotate(-12deg); }
|
|
|
.orbit-one { width:570px; height:280px; right:1%; top:99px; }
|
|
.orbit-one { width:570px; height:280px; right:1%; top:99px; }
|
|
|
.orbit-two { width:440px; height:210px; right:6%; top:135px; border-color:rgba(36,91,214,.14) transparent transparent transparent; }
|
|
.orbit-two { width:440px; height:210px; right:6%; top:135px; border-color:rgba(36,91,214,.14) transparent transparent transparent; }
|
|
@@ -60,14 +63,17 @@ button { cursor:pointer; }
|
|
|
.course-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
|
|
.course-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
|
|
|
.course-card { min-height:158px; border:1px solid #e5e9f1; background:rgba(255,255,255,.82); border-radius:12px; display:flex; padding:22px; position:relative; transition:.2s; overflow:hidden; }
|
|
.course-card { min-height:158px; border:1px solid #e5e9f1; background:rgba(255,255,255,.82); border-radius:12px; display:flex; padding:22px; position:relative; transition:.2s; overflow:hidden; }
|
|
|
.course-card:hover { border-color:#cbd7ee; box-shadow:0 12px 40px rgba(24,48,91,.07); transform:translateY(-2px); }
|
|
.course-card:hover { border-color:#cbd7ee; box-shadow:0 12px 40px rgba(24,48,91,.07); transform:translateY(-2px); }
|
|
|
-.course-number { width:70px; height:100%; min-height:110px; display:grid; place-items:center; border-radius:8px; color:#2d62ce; font-size:18px; font-weight:500; background:linear-gradient(145deg,#edf3ff,#f7f9fd); margin-right:20px; position:relative; overflow:hidden; }
|
|
|
|
|
-.course-number:after { content:''; position:absolute; width:80px; height:35px; border:1px solid rgba(44,95,200,.2); border-radius:50%; top:37px; left:11px; }
|
|
|
|
|
|
|
+.course-number { width:70px; min-width:70px; flex-shrink:0; height:100%; min-height:110px; display:grid; place-items:center; border-radius:8px; color:#2d62ce; font-size:18px; font-weight:600; background:linear-gradient(145deg,#edf3ff,#f7f9fd); margin-right:20px; position:relative; overflow:hidden; }
|
|
|
|
|
+.course-number:after { content:''; position:absolute; width:80px; height:36px; border:1px solid rgba(44,95,200,.2); border-radius:50%; top:50%; left:50%; transform:translate(-50%,-50%) rotate(-15deg); pointer-events:none; }
|
|
|
|
|
+.tone-0 { color:#2d62ce; background:linear-gradient(145deg,#edf3ff,#f7f9fd); }
|
|
|
.tone-1 { color:#6885a9; background:#f1f4f7; }
|
|
.tone-1 { color:#6885a9; background:#f1f4f7; }
|
|
|
|
|
+.tone-1:after { border-color:rgba(104,133,169,.22); }
|
|
|
.tone-2 { color:#b09052; background:#f8f5ed; }
|
|
.tone-2 { color:#b09052; background:#f8f5ed; }
|
|
|
-.course-card-main { min-width:0; padding-top:1px; }
|
|
|
|
|
|
|
+.tone-2:after { border-color:rgba(176,144,82,.25); }
|
|
|
|
|
+.course-card-main { flex:1; min-width:0; padding-top:1px; padding-right:28px; }
|
|
|
.course-card h3 { margin:11px 0 6px; font-size:17px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
|
.course-card h3 { margin:11px 0 6px; font-size:17px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
|
|
.course-card-main>p { font-size:12px; color:#8c96a8; margin:0 0 17px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
|
.course-card-main>p { font-size:12px; color:#8c96a8; margin:0 0 17px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
|
|
-.course-meta { display:flex; gap:8px; }
|
|
|
|
|
|
|
+.course-meta { display:flex; gap:8px; flex-wrap:wrap; }
|
|
|
.course-meta span { font-size:10px; color:#7d899c; background:#f4f6f9; padding:5px 8px; border-radius:4px; }
|
|
.course-meta span { font-size:10px; color:#7d899c; background:#f4f6f9; padding:5px 8px; border-radius:4px; }
|
|
|
.card-arrow { position:absolute; right:20px; top:24px; color:#b6bfce; }
|
|
.card-arrow { position:absolute; right:20px; top:24px; color:#b6bfce; }
|
|
|
|
|
|
|
@@ -211,14 +217,14 @@ button { cursor:pointer; }
|
|
|
.admin-shell { min-height:100vh; background:#f4f6fa; }
|
|
.admin-shell { min-height:100vh; background:#f4f6fa; }
|
|
|
.admin-topbar { height:70px; padding:0 clamp(20px,4vw,60px); display:flex; align-items:center; border-bottom:1px solid #dde3ed; background:#ffffff; box-shadow:0 1px 4px rgba(0,0,0,.03); position:sticky; top:0; z-index:20; }
|
|
.admin-topbar { height:70px; padding:0 clamp(20px,4vw,60px); display:flex; align-items:center; border-bottom:1px solid #dde3ed; background:#ffffff; box-shadow:0 1px 4px rgba(0,0,0,.03); position:sticky; top:0; z-index:20; }
|
|
|
.admin-brand-wrap { display:flex; align-items:center; gap:14px; }
|
|
.admin-brand-wrap { display:flex; align-items:center; gap:14px; }
|
|
|
-.admin-badge { display:inline-flex; align-items:center; gap:5px; background:linear-gradient(135deg,#742a2a,#9b2c2c); color:#fff; font-size:11px; font-weight:600; padding:4px 9px; border-radius:6px; letter-spacing:.05em; }
|
|
|
|
|
|
|
+.admin-badge { display:inline-flex; align-items:center; gap:5px; background:var(--blue); color:#fff; font-size:11px; font-weight:600; padding:4px 9px; border-radius:6px; letter-spacing:.05em; }
|
|
|
.admin-nav { display:flex; height:100%; gap:26px; align-items:center; margin-left:45px; }
|
|
.admin-nav { display:flex; height:100%; gap:26px; align-items:center; margin-left:45px; }
|
|
|
.admin-nav a { color:#64748b; font-size:14px; font-weight:500; height:100%; display:flex; align-items:center; gap:7px; position:relative; }
|
|
.admin-nav a { color:#64748b; font-size:14px; font-weight:500; height:100%; display:flex; align-items:center; gap:7px; position:relative; }
|
|
|
.admin-nav a:hover { color:#1e293b; }
|
|
.admin-nav a:hover { color:#1e293b; }
|
|
|
.admin-nav a.active { color:var(--blue); font-weight:600; }
|
|
.admin-nav a.active { color:var(--blue); font-weight:600; }
|
|
|
.admin-nav a.active:after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--blue); }
|
|
.admin-nav a.active:after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--blue); }
|
|
|
.admin-top-actions { margin-left:auto; display:flex; align-items:center; gap:16px; }
|
|
.admin-top-actions { margin-left:auto; display:flex; align-items:center; gap:16px; }
|
|
|
-.client-switch-button { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:#475569; background:#f1f5f9; border:1px solid #cbd5e1; padding:6px 12px; border-radius:6px; font-weight:500; }
|
|
|
|
|
|
|
+.client-switch-button { min-height:var(--button-small-height); display:inline-flex; align-items:center; gap:6px; font-size:12px; color:#536077; background:#fff; border:1px solid #dce2ed; padding:0 12px; border-radius:var(--button-radius); font-weight:500; transition:.2s ease; }
|
|
|
.client-switch-button:hover { background:#e2e8f0; color:#0f172a; }
|
|
.client-switch-button:hover { background:#e2e8f0; color:#0f172a; }
|
|
|
.admin-user-info { display:flex; flex-direction:column; text-align:right; font-size:12px; }
|
|
.admin-user-info { display:flex; flex-direction:column; text-align:right; font-size:12px; }
|
|
|
.admin-user-info strong { color:#1e293b; }
|
|
.admin-user-info strong { color:#1e293b; }
|
|
@@ -236,7 +242,7 @@ button { cursor:pointer; }
|
|
|
.tone-blue { background:#ebf4ff; color:#2563eb; }
|
|
.tone-blue { background:#ebf4ff; color:#2563eb; }
|
|
|
.tone-slate { background:#f1f5f9; color:#475569; }
|
|
.tone-slate { background:#f1f5f9; color:#475569; }
|
|
|
.tone-gold { background:#fef3c7; color:#d97706; }
|
|
.tone-gold { background:#fef3c7; color:#d97706; }
|
|
|
-.tone-primary { background:#ede9fe; color:#7c3aed; }
|
|
|
|
|
|
|
+.tone-primary { background:#edf3ff; color:var(--blue); }
|
|
|
.tone-green { background:#dcfce7; color:#16a34a; }
|
|
.tone-green { background:#dcfce7; color:#16a34a; }
|
|
|
.stat-content { display:flex; flex-direction:column; }
|
|
.stat-content { display:flex; flex-direction:column; }
|
|
|
.stat-content small { font-size:12px; color:#64748b; margin-bottom:4px; }
|
|
.stat-content small { font-size:12px; color:#64748b; margin-bottom:4px; }
|
|
@@ -314,7 +320,7 @@ button { cursor:pointer; }
|
|
|
/* 右侧侧边栏卡片 */
|
|
/* 右侧侧边栏卡片 */
|
|
|
.admin-sidebar-card { padding:24px; margin-bottom:20px; }
|
|
.admin-sidebar-card { padding:24px; margin-bottom:20px; }
|
|
|
.user-profile-summary { display:flex; align-items:center; gap:14px; margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid #f1f5f9; }
|
|
.user-profile-summary { display:flex; align-items:center; gap:14px; margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid #f1f5f9; }
|
|
|
-.user-avatar-large { width:48px; height:48px; border-radius:50%; background:#e0e7ff; color:#4338ca; display:grid; place-items:center; flex-shrink:0; }
|
|
|
|
|
|
|
+.user-avatar-large { width:48px; height:48px; border-radius:50%; background:#edf3ff; color:var(--blue); display:grid; place-items:center; flex-shrink:0; }
|
|
|
.user-summary-text strong { display:block; font-size:15px; color:#0f172a; }
|
|
.user-summary-text strong { display:block; font-size:15px; color:#0f172a; }
|
|
|
.user-summary-text small { color:#64748b; font-size:12px; }
|
|
.user-summary-text small { color:#64748b; font-size:12px; }
|
|
|
.contact-list { display:flex; flex-direction:column; gap:10px; font-size:13px; }
|
|
.contact-list { display:flex; flex-direction:column; gap:10px; font-size:13px; }
|
|
@@ -340,19 +346,2470 @@ button { cursor:pointer; }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* ==================== ADMIN 专属登录页样式 ==================== */
|
|
/* ==================== ADMIN 专属登录页样式 ==================== */
|
|
|
-.admin-login-page { min-height:100vh; display:grid; place-items:center; background:radial-gradient(circle at 50% 20%,rgba(36,91,214,.18),transparent 45%),radial-gradient(circle at 80% 80%,rgba(94,60,212,.12),transparent 40%),#0e1526; padding:24px; }
|
|
|
|
|
-.admin-login-card { width:min(440px,100%); background:rgba(19,28,49,.85); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,.1); border-radius:16px; padding:44px 38px; box-shadow:0 30px 80px rgba(0,0,0,.45); }
|
|
|
|
|
|
|
+.admin-login-page { min-height:100vh; display:grid; place-items:center; background:radial-gradient(circle at 22% 28%,rgba(36,91,214,.10),transparent 38%),#f5f7fb; padding:24px; }
|
|
|
|
|
+.admin-login-card { width:min(440px,100%); background:#fff; border:1px solid var(--line); border-radius:14px; padding:44px 38px; box-shadow:0 20px 60px rgba(40,57,90,.08); }
|
|
|
.admin-login-head { text-align:center; margin-bottom:28px; }
|
|
.admin-login-head { text-align:center; margin-bottom:28px; }
|
|
|
-.admin-login-brand { display:flex; justify-content:center; margin-bottom:18px; filter:invert(1) hue-rotate(180deg); }
|
|
|
|
|
-.admin-login-badge { display:inline-flex; align-items:center; gap:6px; background:linear-gradient(135deg,#991b1b,#b91c1c); color:#fff; font-size:11px; font-weight:600; padding:4px 11px; border-radius:20px; letter-spacing:.08em; margin-bottom:14px; }
|
|
|
|
|
-.admin-login-head h2 { margin:0 0 8px; font-size:24px; font-weight:600; color:#f8fafc; }
|
|
|
|
|
-.admin-login-head p { margin:0; font-size:13px; color:#94a3b8; }
|
|
|
|
|
-.admin-login-form label { display:flex; flex-direction:column; gap:8px; font-size:12px; color:#cbd5e1; margin-bottom:20px; }
|
|
|
|
|
-.admin-login-form input { width:100%; border:1px solid rgba(255,255,255,.15); border-radius:8px; padding:12px 14px 12px 42px; background:rgba(15,23,42,.6); color:#f8fafc; font-size:14px; outline:none; transition:.2s; }
|
|
|
|
|
-.admin-login-form input:focus { border-color:#38bdf8; box-shadow:0 0 0 3px rgba(56,189,248,.15); background:rgba(15,23,42,.9); }
|
|
|
|
|
|
|
+.admin-login-brand { display:flex; justify-content:center; margin-bottom:18px; }
|
|
|
|
|
+.admin-login-badge { display:inline-flex; align-items:center; gap:6px; background:#edf3ff; color:var(--blue); font-size:11px; font-weight:600; padding:4px 11px; border-radius:20px; letter-spacing:.08em; margin-bottom:14px; }
|
|
|
|
|
+.admin-login-head h2 { margin:0 0 8px; font-size:24px; font-weight:500; color:var(--ink); }
|
|
|
|
|
+.admin-login-head p { margin:0; font-size:13px; color:var(--muted); }
|
|
|
|
|
+.admin-login-form label { display:flex; flex-direction:column; gap:8px; font-size:12px; color:#59657b; margin-bottom:20px; }
|
|
|
|
|
+.admin-login-form input { width:100%; border:1px solid #dfe4ec; border-radius:7px; padding:12px 14px 12px 42px; background:#fbfcfe; color:#253149; font-size:14px; outline:none; transition:.2s; }
|
|
|
|
|
+.admin-login-form input:focus { border-color:#7599e8; box-shadow:0 0 0 3px rgba(36,91,214,.08); background:#fff; }
|
|
|
.admin-login-form .input-with-icon svg { color:#64748b; top:14px; }
|
|
.admin-login-form .input-with-icon svg { color:#64748b; top:14px; }
|
|
|
.admin-login-footer { margin-top:24px; text-align:center; display:flex; flex-direction:column; gap:14px; }
|
|
.admin-login-footer { margin-top:24px; text-align:center; display:flex; flex-direction:column; gap:14px; }
|
|
|
-.admin-tip-box { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:8px; padding:8px 12px; font-size:11px; color:#94a3b8; display:inline-flex; align-items:center; justify-content:center; gap:6px; }
|
|
|
|
|
-.back-to-client-link { font-size:12px; color:#60a5fa; transition:.15s; }
|
|
|
|
|
-.back-to-client-link:hover { color:#93c5fd; text-decoration:underline; }
|
|
|
|
|
|
|
+.admin-tip-box { background:#f7f9fc; border:1px solid #edf0f5; border-radius:8px; padding:8px 12px; font-size:11px; color:#8b96a9; display:inline-flex; align-items:center; justify-content:center; gap:6px; }
|
|
|
|
|
+.back-to-client-link { font-size:12px; color:var(--blue); transition:.15s; }
|
|
|
|
|
+.back-to-client-link:hover { color:var(--blue-dark); text-decoration:underline; }
|
|
|
|
|
+
|
|
|
|
|
+/* ==================== 课程创建页 - 示例模板与示范卡片 ==================== */
|
|
|
|
|
+.new-course-layout {
|
|
|
|
|
+ grid-template-columns: minmax(340px, 480px) minmax(420px, 620px);
|
|
|
|
|
+ gap: clamp(30px, 5vw, 60px);
|
|
|
|
|
+}
|
|
|
|
|
+.new-course-aside {
|
|
|
|
|
+ padding-top: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+.aside-subtext {
|
|
|
|
|
+ color: #7b889d;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ line-height: 1.7;
|
|
|
|
|
+ margin: 16px 0 24px;
|
|
|
|
|
+}
|
|
|
|
|
+.template-showcase-box {
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #dfe5f0;
|
|
|
|
|
+ border-radius: 14px;
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ box-shadow: 0 10px 30px rgba(30, 48, 80, 0.05);
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+.template-box-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-bottom: 14px;
|
|
|
|
|
+ padding-bottom: 12px;
|
|
|
|
|
+ border-bottom: 1px solid #edf1f7;
|
|
|
|
|
+}
|
|
|
|
|
+.header-left {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ color: #1a253c;
|
|
|
|
|
+}
|
|
|
|
|
+.flame-icon { color: var(--blue); }
|
|
|
|
|
+.sample-count-tag {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ padding: 3px 8px;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+.template-pills {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+ overflow-x: auto;
|
|
|
|
|
+ padding-bottom: 2px;
|
|
|
|
|
+}
|
|
|
|
|
+.template-pill {
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ padding: 6px 12px;
|
|
|
|
|
+ border-radius: 20px;
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ transition: all 0.2s ease;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+}
|
|
|
|
|
+.template-pill:hover {
|
|
|
|
|
+ border-color: #cbd5e1;
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+}
|
|
|
|
|
+.template-pill.active {
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ border-color: #3b82f6;
|
|
|
|
|
+ color: #1d4ed8;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ box-shadow: 0 2px 8px rgba(37, 99, 235, 0.12);
|
|
|
|
|
+}
|
|
|
|
|
+.pill-badge {
|
|
|
|
|
+ background: #dbeafe;
|
|
|
|
|
+ color: #1e40af;
|
|
|
|
|
+ font-size: 9px;
|
|
|
|
|
+ padding: 1px 5px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+.selected-template-card {
|
|
|
|
|
+ background: linear-gradient(180deg, #fbfcfe 0%, #f8fafc 100%);
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ padding: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+.card-tags {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+.sample-tag {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ background: #eef4ff;
|
|
|
|
|
+ border: 1px solid #dbe6fe;
|
|
|
|
|
+ padding: 2px 7px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+.sample-title {
|
|
|
|
|
+ margin: 0 0 6px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+}
|
|
|
|
|
+.sample-desc {
|
|
|
|
|
+ margin: 0 0 14px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ line-height: 1.6;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+}
|
|
|
|
|
+.specs-grid {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ margin-bottom: 14px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ padding: 10px 12px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ border: 1px solid #edf2f7;
|
|
|
|
|
+}
|
|
|
|
|
+.spec-item {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+}
|
|
|
|
|
+.spec-item svg {
|
|
|
|
|
+ color: #3b82f6;
|
|
|
|
|
+ margin-top: 2px;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+.spec-item small {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+}
|
|
|
|
|
+.spec-item span {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ line-height: 1.3;
|
|
|
|
|
+}
|
|
|
|
|
+.preset-assets-strip {
|
|
|
|
|
+ margin-bottom: 14px;
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 10px 12px;
|
|
|
|
|
+}
|
|
|
|
|
+.strip-title {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+.preset-pill-list {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+.asset-minitag {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 5px;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ padding: 4px 8px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+}
|
|
|
|
|
+.asset-minitag svg {
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+.template-actions {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+.action-btn {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ padding: 0 10px;
|
|
|
|
|
+}
|
|
|
|
|
+.highlight-sample-btn { background:var(--blue); color:#fff; box-shadow:var(--button-shadow); }
|
|
|
|
|
+.highlight-sample-btn:hover:not(:disabled) { background:var(--blue-dark); transform:translateY(-1px); }
|
|
|
|
|
+.template-card-footer {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ padding-top: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+.detail-link-btn {
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+ padding: 4px 8px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ transition: all 0.15s;
|
|
|
|
|
+}
|
|
|
|
|
+.detail-link-btn:hover {
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ text-decoration: underline;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 表单顶部快速载入按钮 */
|
|
|
|
|
+.title-left {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+}
|
|
|
|
|
+.quick-sample-pill-btn {
|
|
|
|
|
+ border: 1px solid #bfdbfe;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ color: #1d4ed8;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ padding: 5px 10px;
|
|
|
|
|
+ border-radius: 20px;
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 5px;
|
|
|
|
|
+ transition: all 0.15s;
|
|
|
|
|
+}
|
|
|
|
|
+.quick-sample-pill-btn:hover {
|
|
|
|
|
+ background: #dbeafe;
|
|
|
|
|
+ border-color: #93c5fd;
|
|
|
|
|
+}
|
|
|
|
|
+.form-title {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: flex-end;
|
|
|
|
|
+}
|
|
|
|
|
+.filled-toast {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ background: #f0fdf4;
|
|
|
|
|
+ border: 1px solid #bbf7d0;
|
|
|
|
|
+ color: #15803d;
|
|
|
|
|
+ padding: 10px 14px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+ animation: fadeIn 0.25s ease-out;
|
|
|
|
|
+}
|
|
|
|
|
+@keyframes fadeIn {
|
|
|
|
|
+ from { opacity: 0; transform: translateY(-4px); }
|
|
|
|
|
+ to { opacity: 1; transform: translateY(0); }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ==================== 制作任务书弹窗 Modal ==================== */
|
|
|
|
|
+.modal-backdrop {
|
|
|
|
|
+ position: fixed;
|
|
|
|
|
+ inset: 0;
|
|
|
|
|
+ background: rgba(15, 23, 42, 0.55);
|
|
|
|
|
+ backdrop-filter: blur(4px);
|
|
|
|
|
+ z-index: 999;
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ place-items: center;
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ animation: fadeIn 0.2s ease-out;
|
|
|
|
|
+}
|
|
|
|
|
+.modal-dialog.brief-modal {
|
|
|
|
|
+ width: min(720px, 95vw);
|
|
|
|
|
+ max-height: 88vh;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 16px;
|
|
|
|
|
+ box-shadow: 0 25px 60px rgba(0, 0, 0, 0.2);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+}
|
|
|
|
|
+.modal-header {
|
|
|
|
|
+ padding: 20px 24px;
|
|
|
|
|
+ border-bottom: 1px solid #edf2f7;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+}
|
|
|
|
|
+.modal-header h3 {
|
|
|
|
|
+ margin: 4px 0 0;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+}
|
|
|
|
|
+.modal-badge {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ color: #1d4ed8;
|
|
|
|
|
+ background: #dbeafe;
|
|
|
|
|
+ padding: 2px 7px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+}
|
|
|
|
|
+.close-modal-btn {
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ padding: 6px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ place-items: center;
|
|
|
|
|
+}
|
|
|
|
|
+.close-modal-btn:hover {
|
|
|
|
|
+ background: #e2e8f0;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+}
|
|
|
|
|
+.modal-body.brief-modal-content {
|
|
|
|
|
+ padding: 22px 24px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 18px;
|
|
|
|
|
+}
|
|
|
|
|
+.brief-section {
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ padding: 16px 18px;
|
|
|
|
|
+}
|
|
|
|
|
+.brief-section.focus-card {
|
|
|
|
|
+ background: #fffbeb;
|
|
|
|
|
+ border-color: #fde68a;
|
|
|
|
|
+}
|
|
|
|
|
+.brief-section.focus-card h4 {
|
|
|
|
|
+ color: #92400e;
|
|
|
|
|
+}
|
|
|
|
|
+.brief-section h4 {
|
|
|
|
|
+ margin: 0 0 10px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+.brief-section ul {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ padding-left: 20px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+ line-height: 1.6;
|
|
|
|
|
+}
|
|
|
|
|
+.brief-preset-grid {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+.brief-subcard {
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+.brief-subcard strong {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+ padding-bottom: 6px;
|
|
|
|
|
+ border-bottom: 1px solid #f1f5f9;
|
|
|
|
|
+}
|
|
|
|
|
+.inst-subrow, .asset-subrow {
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+.inst-subrow span, .asset-subrow span {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+}
|
|
|
|
|
+.inst-subrow small, .asset-subrow small {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ margin: 2px 0;
|
|
|
|
|
+}
|
|
|
|
|
+.inst-subrow p {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+ line-height: 1.4;
|
|
|
|
|
+}
|
|
|
|
|
+.modal-footer {
|
|
|
|
|
+ padding: 16px 24px;
|
|
|
|
|
+ border-top: 1px solid #edf2f7;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ==================== 讲师出镜照片上传与规范示例 ==================== */
|
|
|
|
|
+.instructor-image-field-wrapper {
|
|
|
|
|
+ margin: 18px 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.field-label-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.field-main-label {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+ margin: 0 !important;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.field-sub-label {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+ font-weight: normal;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.guide-toggle-btn {
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.guide-toggle-btn:hover {
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ color: #1d4ed8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 上传虚线框 */
|
|
|
|
|
+.instructor-upload-zone {
|
|
|
|
|
+ border: 1.5px dashed #cbd5e1;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ padding: 20px 16px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.2s ease;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-upload-zone:hover,
|
|
|
|
|
+.instructor-upload-zone.dragging {
|
|
|
|
|
+ border-color: #3b82f6;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ transform: translateY(-1px);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.upload-zone-icon {
|
|
|
|
|
+ width: 44px;
|
|
|
|
|
+ height: 44px;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ place-items: center;
|
|
|
|
|
+ transition: transform 0.2s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-upload-zone:hover .upload-zone-icon {
|
|
|
|
|
+ transform: scale(1.08);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.upload-zone-text strong {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ margin-bottom: 3px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.upload-zone-text span {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 已选图片预览卡片 */
|
|
|
|
|
+.instructor-image-preview-card {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ padding: 10px 14px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #93c5fd;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ box-shadow: 0 1px 3px rgba(37, 99, 235, 0.08);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-thumbnail {
|
|
|
|
|
+ width: 52px;
|
|
|
|
|
+ height: 64px;
|
|
|
|
|
+ object-fit: cover;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-info {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ min-width: 0;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-info .file-name {
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-info .file-size {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #16a34a;
|
|
|
|
|
+ margin-top: 3px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-actions {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-actions .change-btn {
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ padding: 5px 10px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-actions .change-btn:hover {
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ border-color: #94a3b8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-actions .remove-btn {
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ background: #fee2e2;
|
|
|
|
|
+ color: #ef4444;
|
|
|
|
|
+ width: 28px;
|
|
|
|
|
+ height: 28px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ place-items: center;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-actions .remove-btn:hover {
|
|
|
|
|
+ background: #fecaca;
|
|
|
|
|
+ color: #dc2626;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 规范示例展示区域 */
|
|
|
|
|
+.sample-guide-section {
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ padding: 14px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-guide-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.guide-title {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.guide-icon {
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.guide-tag {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ background: #dcfce7;
|
|
|
|
|
+ color: #15803d;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ padding: 2px 7px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 示例卡片两列布局 */
|
|
|
|
|
+.sample-cards-grid {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-card {
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-card:hover {
|
|
|
|
|
+ transform: translateY(-2px);
|
|
|
|
|
+ border-color: #93c5fd;
|
|
|
|
|
+ box-shadow: 0 6px 16px rgba(37, 99, 235, 0.08);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-img-box {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ aspect-ratio: 4 / 3;
|
|
|
|
|
+ background: #000000;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-img-box img {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ object-fit: cover;
|
|
|
|
|
+ object-position: top center;
|
|
|
|
|
+ transition: transform 0.3s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-card:hover .sample-img-box img {
|
|
|
|
|
+ transform: scale(1.05);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-pose-badge {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 6px;
|
|
|
|
|
+ left: 6px;
|
|
|
|
|
+ background: rgba(15, 23, 42, 0.7);
|
|
|
|
|
+ backdrop-filter: blur(4px);
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.zoom-hint {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ inset: 0;
|
|
|
|
|
+ background: rgba(15, 23, 42, 0.45);
|
|
|
|
|
+ backdrop-filter: blur(2px);
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+ opacity: 0;
|
|
|
|
|
+ transition: opacity 0.2s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-card:hover .zoom-hint {
|
|
|
|
|
+ opacity: 1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-card-desc {
|
|
|
|
|
+ padding: 8px 10px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 3px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-card-desc strong {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-card-desc p {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 10.5px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ line-height: 1.4;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 文字要求清单 */
|
|
|
|
|
+.guide-requirements-list {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ border-top: 1px dashed #e2e8f0;
|
|
|
|
|
+ padding-top: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.req-item {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.req-icon {
|
|
|
|
|
+ width: 18px;
|
|
|
|
|
+ height: 18px;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ place-items: center;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ margin-top: 1px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.green-dot {
|
|
|
|
|
+ color: #16a34a;
|
|
|
|
|
+ background: #dcfce7;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.blue-dot {
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ background: #dbeafe;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.amber-dot {
|
|
|
|
|
+ color: #d97706;
|
|
|
|
|
+ background: #fef3c7;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.red-dot {
|
|
|
|
|
+ color: #dc2626;
|
|
|
|
|
+ background: #fee2e2;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.req-content {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 2px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.req-content strong {
|
|
|
|
|
+ font-size: 11.5px;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.req-content p {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+ line-height: 1.45;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 示例大图弹窗 Modal */
|
|
|
|
|
+.sample-modal-overlay {
|
|
|
|
|
+ position: fixed;
|
|
|
|
|
+ inset: 0;
|
|
|
|
|
+ background: rgba(15, 23, 42, 0.65);
|
|
|
|
|
+ backdrop-filter: blur(6px);
|
|
|
|
|
+ z-index: 1000;
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ place-items: center;
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ animation: fadeIn 0.2s ease-out;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-modal-box {
|
|
|
|
|
+ width: min(820px, 95vw);
|
|
|
|
|
+ max-height: 90vh;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 16px;
|
|
|
|
|
+ box-shadow: 0 25px 60px rgba(0, 0, 0, 0.25);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-modal-header {
|
|
|
|
|
+ padding: 16px 22px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border-bottom: 1px solid #e2e8f0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-title-group {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 3px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-title-group h3 {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 17px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-sub-tag {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-close-btn {
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ width: 32px;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ place-items: center;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-close-btn:hover {
|
|
|
|
|
+ background: #e2e8f0;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-modal-body {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 340px 1fr;
|
|
|
|
|
+ padding: 20px 24px;
|
|
|
|
|
+ gap: 24px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ align-items: start;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+@media (max-width: 720px) {
|
|
|
|
|
+ .sample-modal-body {
|
|
|
|
|
+ grid-template-columns: 1fr;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-modal-view {
|
|
|
|
|
+ background: #0f172a;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ height: 400px;
|
|
|
|
|
+ box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.4);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-large-img {
|
|
|
|
|
+ max-width: 100%;
|
|
|
|
|
+ max-height: 100%;
|
|
|
|
|
+ object-fit: contain;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-modal-spec {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-modal-spec h4 {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 15px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.spec-checklist {
|
|
|
|
|
+ list-style: none;
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.spec-checklist li {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ padding-left: 18px;
|
|
|
|
|
+ font-size: 12.5px;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.spec-checklist li::before {
|
|
|
|
|
+ content: "•";
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 4px;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ line-height: 1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.spec-checklist strong {
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-modal-switch {
|
|
|
|
|
+ margin-top: 12px;
|
|
|
|
|
+ padding: 12px 14px;
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.switch-label {
|
|
|
|
|
+ font-size: 11.5px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.switch-buttons {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.switch-btn {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ padding: 8px 12px;
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.switch-btn:hover {
|
|
|
|
|
+ border-color: #93c5fd;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.switch-btn.active {
|
|
|
|
|
+ background: #2563eb;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ border-color: #2563eb;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sample-modal-footer {
|
|
|
|
|
+ padding: 14px 22px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border-top: 1px solid #e2e8f0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 讲师表单操作按钮 */
|
|
|
|
|
+.instructor-form-actions {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ margin-top: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-form-actions .cancel-btn {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-form-actions .cancel-btn:hover {
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-form-actions .primary-button {
|
|
|
|
|
+ flex: 2;
|
|
|
|
|
+ margin-top: 0;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ==================== 讲师添加弹窗 Modal ==================== */
|
|
|
|
|
+.modal-dialog.instructor-modal {
|
|
|
|
|
+ width: min(680px, 95vw);
|
|
|
|
|
+ max-height: 90vh;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 16px;
|
|
|
|
|
+ box-shadow: 0 25px 60px rgba(0, 0, 0, 0.22);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-form-content {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body {
|
|
|
|
|
+ padding: 22px 24px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 16px;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body .form-group-row {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
|
|
+ gap: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+@media (max-width: 600px) {
|
|
|
|
|
+ .instructor-modal-body .form-group-row {
|
|
|
|
|
+ grid-template-columns: 1fr;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body .form-label {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body .form-label span {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body .form-label.required span::after {
|
|
|
|
|
+ content: " *";
|
|
|
|
|
+ color: #ef4444;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body input,
|
|
|
|
|
+.instructor-modal-body textarea {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 10px 14px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ font-family: inherit;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body input:focus,
|
|
|
|
|
+.instructor-modal-body textarea:focus {
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ border-color: #3b82f6;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body textarea {
|
|
|
|
|
+ resize: vertical;
|
|
|
|
|
+ min-height: 76px;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.instructor-modal-body .instructor-image-field-wrapper {
|
|
|
|
|
+ margin: 4px 0 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 侧边栏空讲师状态 */
|
|
|
|
|
+.empty-instructor-box {
|
|
|
|
|
+ padding: 22px 16px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px dashed #cbd5e1;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.empty-instructor-box p {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.add-instructor-trigger-btn {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ padding: 6px 14px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ border: 1px solid #bfdbfe;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.add-instructor-trigger-btn:hover {
|
|
|
|
|
+ background: #dbeafe;
|
|
|
|
|
+ color: #1d4ed8;
|
|
|
|
|
+ border-color: #93c5fd;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.add-instructor-btn:hover {
|
|
|
|
|
+ background: #f1f5f9 !important;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ border-color: #cbd5e1 !important;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ==================== 课程分集与素材管理 UI ==================== */
|
|
|
|
|
+
|
|
|
|
|
+.workspace-grid {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: minmax(0, 1fr) 340px;
|
|
|
|
|
+ gap: 24px;
|
|
|
|
|
+ align-items: start;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episodes-workspace-main {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episodes-header-panel {
|
|
|
|
|
+ padding: 24px 28px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 14px;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.panel-heading-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+ gap: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.panel-intro {
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ margin: 6px 0 0 0;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episodes-actions-toolbar {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episodes-metrics-bar {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: repeat(4, 1fr);
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ margin-top: 20px;
|
|
|
|
|
+ padding: 14px 18px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ border: 1px solid #edf2f7;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.metric-item {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 2px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.metric-num {
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+ letter-spacing: -0.02em;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.metric-item small {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.expand-collapse-strip {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-top: 16px;
|
|
|
|
|
+ padding-top: 14px;
|
|
|
|
|
+ border-top: 1px dashed #e2e8f0;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.expand-links {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.expand-links button {
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.expand-links button:hover {
|
|
|
|
|
+ text-decoration: underline;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 分集卡片容器 */
|
|
|
|
|
+.episodes-list-container {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-card {
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ transition: all 0.2s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-card:hover {
|
|
|
|
|
+ border-color: #cbd5e1;
|
|
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-card.expanded {
|
|
|
|
|
+ border-color: #93c5fd;
|
|
|
|
|
+ box-shadow: 0 4px 16px rgba(37, 99, 235, 0.08);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-card-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 14px 18px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ user-select: none;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ transition: background 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-card.expanded .episode-card-header {
|
|
|
|
|
+ background: #f8fbff;
|
|
|
|
|
+ border-bottom: 1px solid #e2e8f0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.header-left {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ min-width: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-toggle-arrow {
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-number-tag {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 3px 8px;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ color: #1d4ed8;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 1px solid #bfdbfe;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ letter-spacing: 0.02em;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-title {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 15px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.header-right {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.tag-pill {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 3px 8px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.tag-pill-success {
|
|
|
|
|
+ background: #f0fdf4;
|
|
|
|
|
+ color: #166534;
|
|
|
|
|
+ border: 1px solid #bbf7d0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.tag-pill-dim {
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.tag-pill-info {
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ color: #1e40af;
|
|
|
|
|
+ border: 1px solid #dbeafe;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.icon-action-btn {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ width: 28px;
|
|
|
|
|
+ height: 28px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 1px solid transparent;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.icon-action-btn:hover {
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ border-color: #e2e8f0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.icon-action-btn.delete-btn:hover {
|
|
|
|
|
+ background: #fef2f2;
|
|
|
|
|
+ color: #dc2626;
|
|
|
|
|
+ border-color: #fecaca;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 展开后的分集主体 */
|
|
|
|
|
+.episode-card-body {
|
|
|
|
|
+ padding: 18px 20px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-summary-text {
|
|
|
|
|
+ margin: 0 0 16px 0;
|
|
|
|
|
+ padding: 8px 12px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+ border-left: 3px solid #3b82f6;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-body-grid {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 1.1fr 0.9fr;
|
|
|
|
|
+ gap: 18px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-notes-box,
|
|
|
|
|
+.ep-assets-box {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ background: #fbfcfe;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ padding: 14px 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.box-title-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.box-title-row .title-left {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.dirty-badge {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
|
+ background: #fef3c7;
|
|
|
|
|
+ color: #b45309;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-notes-textarea {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ padding: 10px 12px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ line-height: 1.6;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ resize: vertical;
|
|
|
|
|
+ min-height: 120px;
|
|
|
|
|
+ transition: border-color 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-notes-textarea:focus {
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ border-color: #2563eb;
|
|
|
|
|
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.notes-footer-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-top: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.notes-footer-row small {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.save-notes-btn {
|
|
|
|
|
+ padding: 4px 12px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 分集素材列表 */
|
|
|
|
|
+.ep-assets-list {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
|
+ max-height: 160px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-asset-item {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ padding: 6px 10px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-asset-item:hover {
|
|
|
|
|
+ border-color: #cbd5e1;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.asset-item-icon {
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-asset-info {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ min-width: 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-asset-info strong {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-asset-info span {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-upload-zone {
|
|
|
|
|
+ margin-top: auto;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-file-label {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ padding: 8px 12px;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ border: 1px dashed #93c5fd;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #1d4ed8;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-file-label:hover {
|
|
|
|
|
+ background: #dbeafe;
|
|
|
|
|
+ border-color: #60a5fa;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-pending-files {
|
|
|
|
|
+ margin-top: 8px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.pending-chips {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.pending-chip {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+ padding: 3px 8px;
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.pending-chip button {
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.pending-chip button:hover {
|
|
|
|
|
+ color: #ef4444;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 空分集提示卡片 */
|
|
|
|
|
+.episodes-empty-card {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ padding: 48px 24px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 2px dashed #cbd5e1;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episodes-empty-card .empty-icon {
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episodes-empty-card h3 {
|
|
|
|
|
+ margin: 0 0 6px 0;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episodes-empty-card p {
|
|
|
|
|
+ margin: 0 0 20px 0;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ max-width: 440px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.empty-actions {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 全局资产卡片 */
|
|
|
|
|
+.global-assets-panel {
|
|
|
|
|
+ padding: 24px 28px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 14px;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 提交统计提示 */
|
|
|
|
|
+.submit-summary-info {
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.submit-summary-info p {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ==================== 分集弹窗 EpisodeModal 样式 ==================== */
|
|
|
|
|
+.modal-dialog.episode-modal {
|
|
|
|
|
+ width: min(680px, 95vw);
|
|
|
|
|
+ max-height: 90vh;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 16px;
|
|
|
|
|
+ box-shadow: 0 25px 60px rgba(0, 0, 0, 0.22);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-tabs-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ background: #f1f5f9;
|
|
|
|
|
+ padding: 6px 8px;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ border-bottom: 1px solid #e2e8f0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-tab-btn {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ gap: 7px;
|
|
|
|
|
+ padding: 8px 14px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ border: 0;
|
|
|
|
|
+ border-radius: 7px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-tab-btn:hover {
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ background: rgba(255, 255, 255, 0.6);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-tab-btn.active {
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-modal-body {
|
|
|
|
|
+ padding: 22px 24px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 16px;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.grid-two-inputs {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 120px 1fr;
|
|
|
|
|
+ gap: 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+@media (max-width: 540px) {
|
|
|
|
|
+ .grid-two-inputs {
|
|
|
|
|
+ grid-template-columns: 1fr;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-modal-body .form-label {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-modal-body .form-label span {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-modal-body .form-label.required span::after {
|
|
|
|
|
+ content: " *";
|
|
|
|
|
+ color: #ef4444;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-modal-body input,
|
|
|
|
|
+.episode-modal-body textarea {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 10px 14px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ font-family: inherit;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-modal-body input:focus,
|
|
|
|
|
+.episode-modal-body textarea:focus {
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ border-color: #3b82f6;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-modal-body textarea {
|
|
|
|
|
+ resize: vertical;
|
|
|
|
|
+ min-height: 100px;
|
|
|
|
|
+ line-height: 1.55;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.label-with-badge {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.optional-fields-toggle {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
|
+ padding-top: 2px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.toggle-optional-btn {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ border: 1px dashed #cbd5e1;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 8px 14px;
|
|
|
|
|
+ font-size: 12.5px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.toggle-optional-btn:hover {
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border-color: #94a3b8;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.optional-fields-container {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 14px;
|
|
|
|
|
+ padding: 14px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ animation: fadeIn 0.18s ease-out;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.lecture-stats-badge {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 5px;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ border: 1px solid #dbeafe;
|
|
|
|
|
+ padding: 3px 8px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.batch-notice-banner {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ padding: 12px 14px;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ border: 1px solid #bfdbfe;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ color: #1e40af;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.batch-notice-banner svg {
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ margin-top: 2px;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.batch-notice-banner strong {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ margin-bottom: 2px;
|
|
|
|
|
+ color: #1e3a8a;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.batch-notice-banner p {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #3b82f6;
|
|
|
|
|
+ line-height: 1.45;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.quick-count-tags {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ margin-top: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.count-pill {
|
|
|
|
|
+ padding: 6px 12px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.15s ease;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.count-pill:hover {
|
|
|
|
|
+ border-color: #94a3b8;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.count-pill.active {
|
|
|
|
|
+ background: #2563eb;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ border-color: #2563eb;
|
|
|
|
|
+ box-shadow: 0 2px 6px rgba(37, 99, 235, 0.25);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.batch-preview-box {
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ padding: 12px 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-title {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.batch-preview-list {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ max-height: 160px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #edf2f7;
|
|
|
|
|
+ padding: 6px 10px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-ep-tag {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ color: #2563eb;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ border: 1px solid #dbeafe;
|
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-ep-title {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.preview-row-more {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ padding: 4px 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ==================== 制作交付与管理后台分集面板 ==================== */
|
|
|
|
|
+
|
|
|
|
|
+.deliverable-category-wrapper {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-deliverable-group {
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 12px 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.episode-deliverable-group .group-title {
|
|
|
|
|
+ margin: 0 0 10px 0;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-badge-small {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
|
+ background: #dbeafe;
|
|
|
|
|
+ color: #1e40af;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 管理员端分集列表与交付 */
|
|
|
|
|
+.admin-deliv-group-card {
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 12px 14px;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-deliv-group-card .group-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.deliv-upload-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 14px;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.target-ep-select-label {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.target-ep-select-label select {
|
|
|
|
|
+ padding: 6px 10px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 1px solid #cbd5e1;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-episodes-list {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-episode-card {
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-ep-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 10px 14px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ user-select: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-ep-header .header-left {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-badge-pill {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
|
+ background: #edf3ff;
|
|
|
|
|
+ color: var(--blue);
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.text-pill {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-ep-body {
|
|
|
|
|
+ padding: 14px;
|
|
|
|
|
+ border-top: 1px solid #e2e8f0;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-ep-summary {
|
|
|
|
|
+ margin: 0 0 10px 0;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #475569;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-ep-notes-display {
|
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.notes-label {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 6px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+ margin-bottom: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.notes-pre-content {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ padding: 10px 12px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ font-family: inherit;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ line-height: 1.6;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ white-space: pre-wrap;
|
|
|
|
|
+ word-break: break-word;
|
|
|
|
|
+ max-height: 200px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-ep-assets-grid {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.admin-mini-asset-card {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ padding: 8px 10px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.mini-asset-info {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ min-width: 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.mini-asset-info strong {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.mini-asset-info small {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sidebar-episode-outline {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ max-height: 260px;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.outline-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ padding: 6px 8px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 1px solid #edf2f7;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.outline-badge {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ padding: 2px 5px;
|
|
|
|
|
+ background: #eff6ff;
|
|
|
|
|
+ color: #1d4ed8;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.outline-info {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ min-width: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.outline-info strong {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.outline-info small {
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ color: #94a3b8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sub-section-title {
|
|
|
|
|
+ margin: 16px 0 10px 0;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ color: #334155;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-subrow {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 2px;
|
|
|
|
|
+ padding: 6px 8px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 1px solid #e2e8f0;
|
|
|
|
|
+ margin-bottom: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-subrow span {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #1e293b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.ep-subrow small {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ==================== 危险操作区 (Danger Zone) & 删除课程弹窗 ==================== */
|
|
|
|
|
+.course-danger-section {
|
|
|
|
|
+ margin-top: 36px;
|
|
|
|
|
+ margin-bottom: 24px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-zone-card {
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #fee2e2;
|
|
|
|
|
+ border-radius: 14px;
|
|
|
|
|
+ padding: 20px 24px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 20px;
|
|
|
|
|
+ box-shadow: 0 2px 10px rgba(239, 68, 68, 0.04);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+@media (max-width: 640px) {
|
|
|
|
|
+ .danger-zone-card {
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-zone-title-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ margin-bottom: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-icon {
|
|
|
|
|
+ color: #dc2626;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-zone-info h4 {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 15px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #991b1b;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-zone-info p {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ color: #64748b;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-button {
|
|
|
|
|
+ background: #ef4444;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ border: 1px solid #dc2626;
|
|
|
|
|
+ border-radius: var(--button-radius, 8px);
|
|
|
|
|
+ min-height: 38px;
|
|
|
|
|
+ padding: 0 18px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ gap: 7px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
|
|
|
|
|
+ box-shadow: 0 2px 8px rgba(239, 68, 68, 0.22);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-button:hover:not(:disabled) {
|
|
|
|
|
+ background: #dc2626;
|
|
|
|
|
+ border-color: #b91c1c;
|
|
|
|
|
+ transform: translateY(-1px);
|
|
|
|
|
+ box-shadow: 0 4px 12px rgba(220, 38, 38, 0.28);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-button:active:not(:disabled) {
|
|
|
|
|
+ transform: translateY(0);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-button:disabled,
|
|
|
|
|
+.danger-button.disabled {
|
|
|
|
|
+ background: #f1f5f9 !important;
|
|
|
|
|
+ border-color: #e2e8f0 !important;
|
|
|
|
|
+ color: #94a3b8 !important;
|
|
|
|
|
+ opacity: 0.8 !important;
|
|
|
|
|
+ cursor: not-allowed !important;
|
|
|
|
|
+ box-shadow: none !important;
|
|
|
|
|
+ transform: none !important;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 删除课程弹窗 */
|
|
|
|
|
+.modal-dialog.delete-course-modal {
|
|
|
|
|
+ width: min(480px, 95vw);
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 16px;
|
|
|
|
|
+ box-shadow: 0 25px 60px rgba(0, 0, 0, 0.2);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ border: 1px solid #fee2e2;
|
|
|
|
|
+ animation: modalPop 0.22s cubic-bezier(0.16, 1, 0.3, 1);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-header.danger-header {
|
|
|
|
|
+ background: #fff5f5;
|
|
|
|
|
+ border-bottom: 1px solid #fee2e2;
|
|
|
|
|
+ padding: 18px 22px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-header-title {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-icon-badge {
|
|
|
|
|
+ width: 38px;
|
|
|
|
|
+ height: 38px;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ background: #fee2e2;
|
|
|
|
|
+ color: #dc2626;
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ place-items: center;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.modal-badge.danger-badge {
|
|
|
|
|
+ background: #fee2e2;
|
|
|
|
|
+ color: #b91c1c;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.delete-modal-body {
|
|
|
|
|
+ padding: 20px 22px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-alert-card {
|
|
|
|
|
+ background: #fff5f5;
|
|
|
|
|
+ border: 1px solid #fed7d7;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 12px 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-alert-card p {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ color: #742a2a;
|
|
|
|
|
+ line-height: 1.55;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.target-course-name-box {
|
|
|
|
|
+ margin: 8px 0 10px 0;
|
|
|
|
|
+ padding: 8px 12px;
|
|
|
|
|
+ background: #f8fafc;
|
|
|
|
|
+ border: 1px dashed #cbd5e1;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ user-select: all;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.target-course-name-box code {
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-family: inherit;
|
|
|
|
|
+ word-break: break-all;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.delete-confirm-input {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ border: 1.5px solid #cbd5e1;
|
|
|
|
|
+ padding: 0 12px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ color: #0f172a;
|
|
|
|
|
+ transition: border-color 0.2s, box-shadow 0.2s;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.delete-confirm-input:focus {
|
|
|
|
|
+ border-color: #ef4444;
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.danger-submit-btn {
|
|
|
|
|
+ min-height: 38px;
|
|
|
|
|
+ padding: 0 20px;
|
|
|
|
|
+}
|
|
|
|
|
|