@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap');

:root { --ops-ink:#172c27; --ops-deep:#10241f; --ops-mint:#74b29e; --ops-mist:#eaf2ed; --ops-paper:#f5f7f5; --ops-line:#e2e9e4; --el-color-primary:#2b7b62; --el-color-primary-light-3:#65a98f; --el-color-primary-light-9:#edf7f1; font-family:'Noto Sans SC',sans-serif; }
* { box-sizing:border-box; } body { margin:0; color:var(--ops-ink); background:var(--ops-paper); } button { font:inherit; }
.ops-layout { min-height:100vh; background:var(--ops-paper); } .ops-aside { display:flex; flex-direction:column; min-height:100vh; padding:22px 14px; color:#e8f2ed; background:var(--ops-deep); } .ops-brand { display:flex; align-items:center; gap:11px; padding:5px 8px 31px; color:#fff; text-decoration:none; } .ops-brand>span,.login-brand span { display:grid; width:38px; height:38px; place-items:center; border-radius:11px; color:var(--ops-deep); background:#d7ed7a; font:700 13px 'DM Mono'; transform:rotate(-5deg); } .ops-brand b,.ops-brand small { display:block; } .ops-brand b { letter-spacing:.5px; } .ops-brand small { margin-top:2px; color:#98b6aa; font-size:11px; } .aside-label,.kicker { margin:0; color:#739f8e; font:11px 'DM Mono'; letter-spacing:1.2px; } .aside-label { padding:0 12px 9px; } .ops-menu { border:0; background:transparent; } .ops-menu.el-menu { --el-menu-bg-color:transparent; --el-menu-text-color:#b2c8bf; --el-menu-active-color:#fff; --el-menu-hover-bg-color:rgba(255,255,255,.09); } .ops-menu .el-menu-item { height:48px; margin:3px 0; border-radius:10px; } .ops-menu .el-menu-item.is-active { background:#2b594c; } .menu-icon { width:24px; color:#9ad1b9; font-size:17px; } .aside-footer { display:flex; gap:9px; align-items:center; margin-top:auto; padding:16px 10px 5px; border-top:1px solid rgba(255,255,255,.12); } .aside-footer b,.aside-footer small { display:block; } .aside-footer b { font-size:12px; } .aside-footer small { margin-top:3px; color:#8fac9f; font-size:11px; } .status-dot { width:8px; height:8px; border-radius:50%; background:#d7ed7a; box-shadow:0 0 0 5px rgba(215,237,122,.1); }
.ops-header { display:flex; height:86px; align-items:center; justify-content:space-between; padding:14px 34px; background:#fff; border-bottom:1px solid var(--ops-line); } .ops-header h1 { margin:3px 0 0; font-size:24px; letter-spacing:-.5px; } .header-actions { display:flex; align-items:center; gap:16px; } .user-trigger { display:flex; align-items:center; gap:8px; padding:5px; border:0; background:transparent; text-align:left; cursor:pointer; } .user-trigger .el-avatar { color:#fff; background:#2b7b62; } .user-trigger b,.user-trigger small { display:block; } .user-trigger b { font-size:13px; } .user-trigger small { max-width:145px; overflow:hidden; color:#819087; font-size:11px; text-overflow:ellipsis; white-space:nowrap; } .user-trigger i { color:#82948a; font-style:normal; } .ops-main { padding:28px 34px 44px; } .welcome-band { display:flex; align-items:end; justify-content:space-between; gap:20px; padding:27px 30px; border-radius:16px; color:#f1fbf4; background:linear-gradient(120deg,#173e35,#285b4e); box-shadow:0 15px 35px rgba(19,62,53,.13); } .welcome-band .kicker { color:#b7e1cd; } .welcome-band h2 { margin:7px 0; font-size:24px; } .welcome-band p:not(.kicker) { max-width:620px; margin:0; color:#bdd2c8; font-size:13px; } .welcome-band .el-button { --el-button-bg-color:#d7ed7a; --el-button-border-color:#d7ed7a; --el-button-text-color:#183b30; }
.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; margin-top:20px; } .metric-card { border-color:var(--ops-line); border-radius:14px; } .metric-card .el-card__body { display:grid; gap:7px; min-height:130px; } .metric-card small { color:#75867c; font-size:12px; } .metric-card b { color:#1d5f4d; font-size:34px; line-height:1; } .metric-card span { color:#97a59e; font-size:11px; } .content-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr); gap:16px; margin-top:18px; } .panel-card,.table-card { border-color:var(--ops-line); border-radius:14px; } .card-heading { display:flex; justify-content:space-between; align-items:start; } .card-heading h3 { margin:5px 0 0; font-size:17px; } .card-heading>span { color:#84978d; font:11px 'DM Mono'; } .unit-health { display:grid; grid-template-columns:220px 1fr; gap:14px; align-items:center; padding:13px 0; border-bottom:1px solid #edf1ee; } .unit-health:last-child { border-bottom:0; } .unit-health b,.unit-health small { display:block; } .unit-health b { font-size:13px; } .unit-health small { margin-top:3px; color:#8b9a92; font-size:11px; } .next-copy { min-height:74px; color:#64776d; font-size:13px; line-height:1.8; }
.page-toolbar { display:flex; align-items:end; justify-content:space-between; margin-bottom:18px; } .page-toolbar h2 { margin:0 0 5px; font-size:22px; } .page-toolbar p { margin:0; color:#798a81; font-size:13px; } .table-card .el-card__body { padding:8px 18px 18px; } .cell-sub { display:block; margin-top:3px; color:#8a9a91; font-size:11px; } .drawer-head { display:flex; align-items:start; justify-content:space-between; padding:28px 26px 19px; color:#fff; background:linear-gradient(120deg,#153d33,#2b6b58); } .drawer-head h2 { margin:7px 0 4px; font-size:25px; } .drawer-head p:not(.kicker) { margin:0; color:#b9d7ca; font-size:12px; } .drawer-head .kicker { color:#b3e2cc; } .drawer-body { padding:22px 26px 34px; } .user-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:18px; } .user-summary div { padding:13px; border-radius:10px; background:#f1f7f3; } .user-summary small,.user-summary b { display:block; } .user-summary small { color:#82938a; font-size:11px; } .user-summary b { margin-top:5px; font-size:15px; } .form-block { margin:12px 0; padding:17px; border:1px solid var(--ops-line); border-radius:12px; } .form-block h3 { margin:0 0 13px; font-size:15px; } .form-block .el-form-item { margin-bottom:13px; } .danger-block { background:#fffafa; border-color:#f0d3d1; } .reason-input { margin:13px 0; } .profile-card { display:flex; align-items:center; gap:12px; margin-bottom:26px; padding:16px; border-radius:12px; background:#eff6f1; } .profile-card .el-avatar { color:#fff; background:#2b7b62; } .profile-card b,.profile-card small { display:block; } .profile-card small { margin-top:4px; color:#7b8d83; font-size:12px; } .password-form { padding-top:18px; }
.login-page { min-height:100vh; background:#f5f7f5; } .login-layout { display:grid; grid-template-columns:1.08fr .92fr; min-height:100vh; } .login-story { display:flex; flex-direction:column; padding:42px 9vw; color:#edf8f1; background:radial-gradient(circle at 78% 18%,#508a75 0,transparent 26%),linear-gradient(135deg,#102a24,#1f5546); } .login-brand { display:flex; gap:11px; align-items:center; } .login-brand b { font-size:17px; letter-spacing:.8px; } .story-copy { margin:auto 0; } .story-copy .kicker { color:#b6ddc8; } .story-copy h1 { margin:15px 0; font-size:clamp(40px,5vw,65px); line-height:1.14; letter-spacing:-3px; } .story-copy p:not(.kicker) { max-width:350px; color:#c0d8cd; line-height:1.8; } .story-note { color:#9fc1b2; font:11px 'DM Mono'; letter-spacing:1px; } .login-panel { display:grid; place-items:center; padding:32px; } .login-card { width:min(410px,100%); } .login-card h2 { margin:8px 0; font-size:30px; } .subtle { margin:0 0 26px; color:#77877e; font-size:13px; line-height:1.7; } .login-card .el-form-item__label { color:#43584f; font-weight:700; } .login-submit { width:100%; margin-top:8px; } .login-foot { margin-top:27px; color:#94a29b; font-size:12px; text-align:center; }
@media (max-width:980px) { .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .content-grid { grid-template-columns:1fr; } .login-layout { grid-template-columns:1fr; } .login-story { display:none; } } @media (max-width:720px) { .ops-aside { width:66px!important; padding:16px 8px; } .ops-brand div,.aside-label,.ops-menu .el-menu-item span:last-child,.aside-footer div { display:none; } .ops-brand { justify-content:center; padding-bottom:28px; } .ops-menu .el-menu-item { justify-content:center; padding:0!important; } .menu-icon { width:auto; } .aside-footer { justify-content:center; padding:16px 0; } .ops-header { padding:14px 16px; } .ops-header .kicker,.header-actions>.el-button,.user-trigger span { display:none; } .ops-main { padding:18px 16px 28px; } .welcome-band { display:grid; align-items:start; padding:22px; } .metric-grid { grid-template-columns:1fr 1fr; gap:10px; } .metric-card b { font-size:27px; } .unit-health { grid-template-columns:1fr; gap:7px; } .page-toolbar { display:grid; gap:10px; align-items:start; } }

/* 内容工作台采用“单元目录 + 维护画布”结构，避免课程内容被运营表格淹没。 */
.content-manager { display:grid; grid-template-columns:260px minmax(0,1fr); gap:18px; align-items:start; }.content-unit-list,.content-workbench { border:1px solid var(--ops-line); border-radius:16px; background:#fff; }.content-unit-list { overflow:hidden; }.content-list-head { display:flex; justify-content:space-between; padding:17px; border-bottom:1px solid var(--ops-line); }.content-list-head span { color:#82948a; font:11px 'DM Mono'; }.content-unit-item { display:flex; width:100%; justify-content:space-between; gap:8px; padding:15px 16px; border:0; border-bottom:1px solid #eef2ef; background:#fff; color:var(--ops-ink); text-align:left; cursor:pointer; }.content-unit-item:hover { background:#f3f8f4; }.content-unit-item.active { border-left:4px solid #2b7b62; background:#eaf5ed; }.content-unit-item span,.content-unit-item small { display:block; }.content-unit-item span b { font:11px 'DM Mono'; color:#357765; }.content-unit-item small { margin-top:5px; font-size:13px; font-weight:700; line-height:1.35; }.content-unit-item em { align-self:center; color:#788b81; font-size:11px; font-style:normal; white-space:nowrap; }.content-unit-head { display:flex; justify-content:space-between; gap:20px; align-items:start; padding:24px 25px 17px; border-bottom:1px solid var(--ops-line); }.content-unit-head h2 { margin:5px 0; font-size:25px; }.content-unit-head p:not(.kicker) { margin:0; color:#778a80; font-size:13px; }.content-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; border-bottom:1px solid var(--ops-line); background:var(--ops-line); }.content-metrics span { padding:14px 18px; background:#f7faf7; color:#24644f; font:700 23px 'DM Mono'; }.content-metrics small { display:block; margin-top:5px; color:#7c8d84; font:11px 'Noto Sans SC'; }.content-tabs { padding:0 24px 24px; }.content-tabs .el-tabs__header { margin:0 0 20px; }.section-inline-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:3px 0 14px; }.section-inline-head p { margin:0; color:#71837a; font-size:13px; }.content-workbench .el-table { border:1px solid #edf1ee; border-radius:10px; overflow:hidden; }.content-workbench .el-select { width:100%; }
@media (max-width:980px) { .content-manager { grid-template-columns:1fr; }.content-unit-list { display:flex; overflow-x:auto; }.content-list-head { display:none; }.content-unit-item { min-width:190px; border-bottom:0; border-right:1px solid #eef2ef; }.content-unit-item.active { border-left:0; border-bottom:4px solid #2b7b62; } }
@media (max-width:720px) { .content-unit-head,.section-inline-head { display:grid; }.content-metrics { grid-template-columns:repeat(2,1fr); }.content-tabs { padding:0 14px 18px; }.content-unit-head { padding:20px 16px 15px; } }

/* 后台维护统一从右侧展开：编辑时保留左侧单元目录和当前表格，避免弹窗遮断工作上下文。 */
.el-overlay-dialog { display:flex; justify-content:flex-end; align-items:stretch; overflow:hidden; }
.el-overlay-dialog .el-dialog { display:flex; flex-direction:column; width:min(720px,100vw)!important; max-width:100vw; height:100vh; margin:0!important; border-radius:0; box-shadow:-18px 0 46px rgba(19,62,53,.18); animation:ops-drawer-in .24s ease-out; }
.el-overlay-dialog .el-dialog__header { flex:none; margin:0; padding:24px 26px 18px; color:#f3fbf5; background:linear-gradient(120deg,#153d33,#2b6b58); }
.el-overlay-dialog .el-dialog__title { color:inherit; font-size:20px; font-weight:750; }
.el-overlay-dialog .el-dialog__headerbtn { top:20px; right:20px; width:32px; height:32px; border-radius:50%; color:#eff9f1; background:rgba(255,255,255,.12); }
.el-overlay-dialog .el-dialog__headerbtn:hover { color:#183b30; background:#d7ed7a; }
.el-overlay-dialog .el-dialog__body { flex:1; overflow:auto; padding:25px 26px 32px; }
.el-overlay-dialog .el-dialog__footer { flex:none; padding:15px 26px 20px; border-top:1px solid var(--ops-line); background:#fff; }
@keyframes ops-drawer-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
@media (max-width:720px) { .el-overlay-dialog .el-dialog__body { padding:20px 18px 26px; }.el-overlay-dialog .el-dialog__header { padding:20px 18px 16px; }.el-overlay-dialog .el-dialog__footer { padding:14px 18px 18px; } }

/* 月会员配置使用独立右侧抽屉，突出周期和到期规则，避免把日期输入框误当作权益本身。 */
.membership-config-overlay { position:fixed; z-index:3100; inset:0; display:flex; justify-content:flex-end; background:rgba(12,31,25,.42); backdrop-filter:blur(2px); }.membership-config-panel { display:flex; flex-direction:column; width:min(520px,100vw); min-height:100%; color:var(--ops-ink); background:#fff; box-shadow:-22px 0 52px rgba(12,31,25,.24); animation:ops-drawer-in .22s ease-out; }.membership-config-head { display:flex; align-items:center; justify-content:space-between; padding:26px 28px 21px; color:#f4faf6; background:linear-gradient(120deg,#133f34,#2b715b); }.membership-config-head p { margin:0; color:#b6dfca; font:11px 'DM Mono'; letter-spacing:1px; }.membership-config-head h2 { margin:7px 0 0; font-size:25px; }.membership-close { display:grid; width:34px; height:34px; place-items:center; border:0; border-radius:50%; color:#eff9f2; background:rgba(255,255,255,.12); font-size:28px; line-height:1; cursor:pointer; }.membership-close:hover { color:#153d33; background:#d7ed7a; }.membership-config-body { flex:1; overflow:auto; padding:25px 28px 34px; }.membership-person,.membership-current { display:grid; grid-template-columns:86px 1fr; gap:3px 12px; padding:15px; border:1px solid var(--ops-line); border-radius:12px; }.membership-person { background:#f4f8f5; }.membership-current { margin-top:10px; background:#fffdf3; border-color:#eee2ad; }.membership-person span,.membership-current span { grid-row:span 2; color:#71847a; font-size:12px; }.membership-person b,.membership-current b { font-size:15px; }.membership-person small,.membership-current small { color:#7a8b82; font-size:12px; }.membership-form { display:grid; gap:17px; margin-top:22px; }.membership-form label { display:grid; gap:8px; color:#44594f; font-size:13px; font-weight:700; }.membership-form input,.membership-form select,.membership-form textarea { width:100%; padding:11px 12px; border:1px solid #d8e0db; border-radius:8px; color:var(--ops-ink); background:#fff; font:inherit; }.membership-form input:focus,.membership-form select:focus,.membership-form textarea:focus { outline:2px solid rgba(43,123,98,.22); border-color:#2b7b62; }.membership-period { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:16px; border-radius:12px; background:#f2f8f4; }.membership-expiry { grid-column:1/-1; padding-top:4px; border-top:1px dashed #bfd1c6; }.membership-expiry span,.membership-expiry b,.membership-expiry small { display:block; }.membership-expiry span { color:#688077; font-size:12px; }.membership-expiry b { margin:4px 0; color:#1a5a47; font-size:18px; }.membership-expiry small { color:#7d9086; font-size:11px; }.membership-rule { padding:15px 16px; border-left:4px solid #d7ed7a; border-radius:0 9px 9px 0; background:#fbfdf3; }.membership-rule b { font-size:13px; }.membership-rule p { margin:7px 0 0; color:#65776e; font-size:12px; line-height:1.75; }.membership-error { min-height:18px; margin:0; color:#c34a45; font-size:12px; }.membership-form footer { display:flex; justify-content:flex-end; gap:10px; padding-top:2px; }.membership-form footer button { padding:10px 16px; border-radius:8px; font-weight:700; cursor:pointer; }.membership-cancel { border:1px solid #d8e0db; color:#52655c; background:#fff; }.membership-save { border:1px solid #b9d64d; color:#183b30; background:#d7ed7a; }.membership-save:disabled { opacity:.6; cursor:wait; } @media (max-width:520px) { .membership-config-head,.membership-config-body { padding-left:20px; padding-right:20px; }.membership-period { grid-template-columns:1fr; } }

.membership-history-trigger { padding:10px 14px; border:1px solid #2b7b62; border-radius:9px; color:#fff; background:#2b7b62; font-weight:700; cursor:pointer; }.membership-history-trigger:hover { background:#1f604c; }.membership-history-overlay { position:fixed; z-index:3200; inset:0; display:flex; justify-content:flex-end; background:rgba(12,31,25,.42); backdrop-filter:blur(2px); }.membership-history-panel { display:flex; flex-direction:column; width:min(1100px,100vw); min-height:100%; color:var(--ops-ink); background:#fff; box-shadow:-22px 0 52px rgba(12,31,25,.24); animation:ops-drawer-in .22s ease-out; }.membership-history-panel>header { display:flex; align-items:flex-start; justify-content:space-between; padding:25px 29px 20px; color:#f4faf6; background:linear-gradient(120deg,#133f34,#2b715b); }.membership-history-panel>header p { margin:0; color:#b6dfca; font:11px 'DM Mono'; letter-spacing:1px; }.membership-history-panel>header h2 { margin:7px 0 4px; font-size:25px; }.membership-history-panel>header span { color:#c4ddd0; font-size:12px; }.membership-history-close { display:grid; width:34px; height:34px; place-items:center; border:0; border-radius:50%; color:#eff9f2; background:rgba(255,255,255,.12); font-size:28px; cursor:pointer; }.membership-history-close:hover { color:#153d33; background:#d7ed7a; }.membership-history-body { flex:1; overflow:auto; padding:24px 29px 38px; }.membership-history-filter { display:grid; grid-template-columns:minmax(190px,1fr) 150px 150px auto auto; gap:10px; align-items:end; }.membership-history-filter label { display:grid; gap:6px; color:#64786e; font-size:12px; font-weight:700; }.membership-history-filter input { min-height:39px; padding:8px 10px; border:1px solid #d8e0db; border-radius:8px; font:inherit; }.membership-history-filter button { min-height:39px; padding:0 14px; border-radius:8px; font-weight:700; cursor:pointer; }.membership-history-search { border:1px solid #2b7b62; color:#fff; background:#2b7b62; }.membership-history-reset { border:1px solid #d8e0db; color:#52655c; background:#fff; }.membership-stat-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:20px 0 25px; }.membership-stat-grid article { min-height:105px; padding:15px; border:1px solid var(--ops-line); border-radius:12px; background:#f7faf7; }.membership-stat-grid span,.membership-stat-grid b,.membership-stat-grid small { display:block; }.membership-stat-grid span,.membership-stat-grid small { color:#708279; font-size:11px; }.membership-stat-grid b { margin:7px 0 6px; color:#24644f; font:700 28px 'DM Mono'; }.membership-record-head { display:flex; align-items:end; justify-content:space-between; margin-bottom:12px; }.membership-record-head h3 { margin:0 0 4px; font-size:17px; }.membership-record-head p,.membership-record-count { margin:0; color:#798b82; font-size:12px; }.membership-record-error { min-height:18px; margin-bottom:8px; color:#c34a45; font-size:12px; }.membership-record-table-wrap { overflow:auto; border:1px solid #e4ece6; border-radius:11px; }.membership-record-table { width:100%; min-width:850px; border-collapse:collapse; font-size:12px; }.membership-record-table th { padding:12px; color:#708279; background:#f5f8f6; text-align:left; white-space:nowrap; }.membership-record-table td { padding:13px 12px; border-top:1px solid #edf1ee; vertical-align:top; }.membership-record-table td b,.membership-record-table td small { display:block; }.membership-record-table td small { margin-top:3px; color:#7e9086; }.membership-event { display:inline-block; padding:4px 7px; border-radius:999px; color:#245e4b; background:#e5f2e9; font-size:11px; white-space:nowrap; }.membership-event.RENEWED { color:#815d16; background:#fff3ca; }.membership-event.DOWNGRADED { color:#8a4a46; background:#fae5e3; }.membership-event.MIGRATED { color:#5c6c64; background:#eef1ef; }.membership-record-reason { max-width:210px; color:#52645b; line-height:1.55; }.membership-record-empty { padding:30px!important; color:#7e9086; text-align:center; }
@media (max-width:900px) { .membership-history-filter { grid-template-columns:1fr 1fr; }.membership-history-filter label:first-child { grid-column:1/-1; }.membership-stat-grid { grid-template-columns:repeat(3,1fr); } } @media (max-width:560px) { .membership-history-panel>header,.membership-history-body { padding-left:18px; padding-right:18px; }.membership-history-filter,.membership-stat-grid { grid-template-columns:1fr; }.membership-history-filter label:first-child { grid-column:auto; }.membership-stat-grid { margin-bottom:20px; } }
.user-operations-overlay{position:fixed;inset:0;z-index:3300;background:rgba(12,31,25,.42);display:flex;justify-content:flex-end}.user-operations-panel{width:min(1080px,100vw);height:100%;background:#fff;display:flex;flex-direction:column}.user-operations-panel>header{display:flex;justify-content:space-between;padding:24px 30px;color:#fff;background:#174b3d}.user-operations-panel header p{margin:0;font:11px 'DM Mono';letter-spacing:1px}.user-operations-panel h2{margin:6px 0}.user-operations-panel header button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.user-operations-body{display:grid;grid-template-columns:290px 1fr;min-height:0;flex:1}.user-operations-body aside{overflow:auto;border-right:1px solid #e3ebe6;padding:14px}.user-operations-body aside article{padding:12px;border-bottom:1px solid #edf2ee}.user-operations-body aside b,.user-operations-body aside small,.user-operations-body aside span{display:block}.user-operations-body aside small,.user-operations-body aside span{color:#718379;font-size:12px;margin-top:3px}.user-operations-body aside button{margin:9px 8px 0 0;border:1px solid #a8beb2;background:#fff;border-radius:6px;padding:5px 8px;cursor:pointer}.user-operations-body main{overflow:auto;padding:24px 30px;color:#31463c}.user-operations-body main h4{margin:22px 0 7px}.user-operations-body main ul{padding-left:18px;line-height:1.8;color:#60746a}@media(max-width:700px){.user-operations-body{grid-template-columns:1fr}.user-operations-body aside{border-right:0;border-bottom:1px solid #e3ebe6;max-height:42vh}}
.membership-application-overlay{position:fixed;inset:0;z-index:3350;display:flex;justify-content:flex-end;background:rgba(12,31,25,.42)}.membership-application-panel{width:min(780px,100vw);height:100%;overflow:auto;background:#fff;color:#243d33}.membership-application-panel>header{display:flex;justify-content:space-between;padding:25px 30px;color:#fff;background:#174b3d}.membership-application-panel header p{margin:0;color:#cce7dc;font:11px 'DM Mono';letter-spacing:1px}.membership-application-panel h2{margin:7px 0}.membership-application-panel header span{font-size:12px;color:#d9ece4}.membership-application-panel header button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.membership-application-panel>div{padding:24px 30px}.membership-application-item{display:grid;grid-template-columns:210px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid #e5ece7}.membership-application-item p{margin:6px 0;color:#6b7c74;font-size:13px}.membership-application-item form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.membership-application-item label{display:grid;gap:5px;color:#63766d;font-size:12px;font-weight:700}.membership-application-item label:last-of-type,.membership-application-item form>div{grid-column:1/-1}.membership-application-item input{padding:9px;border:1px solid #d4e0d9;border-radius:7px;font:inherit}.membership-application-item button{margin-right:8px;padding:9px 12px;border-radius:7px;font-weight:700;cursor:pointer}.membership-application-item .primary{border:1px solid #204d3e;background:#dff06b;color:#17382d}.membership-application-item .secondary{border:1px solid #cfdcd5;background:#fff;color:#466359}@media(max-width:650px){.membership-application-item{grid-template-columns:1fr}.membership-application-item form{grid-template-columns:1fr}}
/* 学霸挑战在单元工作台内独立成组，维护时从右侧抽屉展开。 */
.extension-manager{padding:20px 24px;border-bottom:1px solid var(--ops-line);background:#fbfdf9}.extension-manager header{display:flex;align-items:center;justify-content:space-between;gap:18px}.extension-manager header p{margin:0;color:#4d9477;font:11px 'DM Mono';letter-spacing:1.2px}.extension-manager h3{margin:5px 0 4px;font-size:18px}.extension-manager h3 span{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:5px;border-radius:999px;color:#1c614c;background:#dff06b;font:11px 'DM Mono';vertical-align:middle}.extension-manager header small{color:#71837a;font-size:12px}.extension-manager header button{padding:9px 12px;border:1px solid #2d7960;border-radius:8px;color:#174d3d;background:#e0f06e;font-weight:700;cursor:pointer;white-space:nowrap}.extension-manager-list{display:grid;gap:8px;margin-top:14px}.extension-manager-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid #e1ebe4;border-radius:10px;background:#fff}.extension-manager-list b,.extension-manager-list small{display:block}.extension-manager-list b{font-size:13px}.extension-manager-list small{margin-top:4px;color:#71837a;font-size:12px}.extension-manager-list article>div:last-child{display:flex;gap:8px}.extension-manager-list article button{border:0;color:#27765c;background:transparent;font:12px 'Noto Sans SC';cursor:pointer}.extension-manager-list article [data-extension-delete]{color:#a55346}.extension-manager-empty{margin:0;padding:13px;border:1px dashed #cadbd0;border-radius:9px;color:#74857c;font-size:12px}
.extension-editor-mask{position:fixed;inset:0;z-index:84;background:rgba(14,31,26,.44)}.extension-editor-drawer{position:fixed;z-index:85;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:min(620px,100vw);background:#fff;box-shadow:-16px 0 40px rgba(12,33,27,.22);color:#17362d}.extension-editor-drawer header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 30px;background:linear-gradient(120deg,#123e32,#277a60);color:#fff}.extension-editor-drawer header p{margin:0 0 5px;color:#dff06b;font:12px/1.2 ui-monospace,monospace;letter-spacing:1.4px}.extension-editor-drawer header h2{margin:0;font-size:25px}.extension-editor-drawer header button{width:35px;height:35px;border:0;border-radius:50%;color:#fff;background:rgba(255,255,255,.15);font-size:28px;line-height:30px;cursor:pointer}.extension-editor-drawer main{overflow:auto;padding:25px 30px 34px}.extension-editor-drawer label{display:block;margin:17px 0;font-size:13px;font-weight:750}.extension-editor-drawer input,.extension-editor-drawer select,.extension-editor-drawer textarea{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:10px 11px;border:1px solid #cddbd4;border-radius:8px;background:#fff;color:#17362d;font:inherit}.extension-editor-drawer textarea{resize:vertical;line-height:1.55}.extension-editor-drawer small{display:block;margin-top:6px;color:#70837b;font-weight:500;line-height:1.5}.extension-editor-intro{padding:14px 16px;border:1px solid #dceae3;border-radius:10px;background:#f4f8f5}.extension-editor-intro b,.extension-editor-intro span{display:block}.extension-editor-intro b{font-size:17px}.extension-editor-intro span{margin-top:4px;color:#587066;font-size:13px;line-height:1.55}.extension-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.extension-editor-section-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 9px}.extension-editor-section-head button{padding:6px 9px;border:1px solid #2c7c63;border-radius:6px;color:#1c654f;background:#f1f8f4;cursor:pointer}.extension-option-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;margin:8px 0}.extension-option-row span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:#267256;background:#e2f2e8;font-size:12px;font-weight:800}.extension-option-row input{margin:0}.extension-option-row button{border:0;color:#a24b37;background:transparent;cursor:pointer}.extension-option-row button:disabled{visibility:hidden}.extension-editor-drawer footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 30px;border-top:1px solid #e2ebe6;background:#fbfdfb}.extension-editor-drawer footer button{padding:10px 18px;border-radius:8px;font-weight:800;cursor:pointer}.extension-cancel{border:1px solid #c8d8d0;color:#38544a;background:#fff}.extension-save{border:1px solid #183f33;color:#17362d;background:#dff06b;box-shadow:3px 3px 0 #183f33}.extension-save:disabled{opacity:.65;cursor:wait}@media(max-width:600px){.extension-manager{padding:18px}.extension-manager header{align-items:flex-start}.extension-manager-list article{align-items:flex-start;flex-direction:column}.extension-editor-drawer main{padding:20px}.extension-editor-drawer header,.extension-editor-drawer footer{padding-left:20px;padding-right:20px}.extension-editor-grid{grid-template-columns:1fr}}

/* 题目按交互方式维护：抽屉不复用通用表单，避免运营人员把口语题误配成选择题。 */
.question-editor-mask{position:fixed;inset:0;background:rgba(14,31,26,.44);z-index:80}.question-editor-drawer{position:fixed;z-index:81;right:0;top:0;bottom:0;width:min(620px,100vw);background:#fff;box-shadow:-16px 0 40px rgba(12,33,27,.22);display:flex;flex-direction:column;color:#17362d}.question-editor-drawer header{padding:24px 30px;background:linear-gradient(120deg,#123e32,#277a60);color:#fff;display:flex;justify-content:space-between;align-items:start}.question-editor-drawer header p{margin:0 0 5px;color:#dff06b;font:12px/1.2 ui-monospace,monospace;letter-spacing:1.4px}.question-editor-drawer header h2{margin:0;font-size:25px}.question-editor-close{border:0;background:rgba(255,255,255,.15);color:#fff;width:35px;height:35px;border-radius:50%;font-size:28px;line-height:30px;cursor:pointer}.question-editor-drawer main{overflow:auto;padding:25px 30px 34px}.question-editor-drawer label{display:block;font-size:13px;font-weight:750;margin:17px 0}.question-editor-drawer input,.question-editor-drawer select,.question-editor-drawer textarea{display:block;width:100%;margin-top:7px;border:1px solid #cddbd4;border-radius:8px;padding:10px 11px;background:#fff;color:#17362d;font:inherit;box-sizing:border-box}.question-editor-drawer textarea{resize:vertical;line-height:1.55}.question-editor-drawer small{display:block;color:#70837b;margin-top:6px;font-weight:500;line-height:1.5}.question-editor-intro{padding:14px 16px;border:1px solid #dceae3;border-radius:10px;background:#f4f8f5}.question-editor-intro b{display:block;font-size:17px}.question-editor-intro span{display:block;margin-top:4px;color:#587066;font-size:13px;line-height:1.55}.question-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.question-editor-section-head{display:flex;justify-content:space-between;align-items:center;margin:22px 0 9px}.question-editor-section-head span{font-size:12px;color:#71847b}.question-editor-section-head button{border:1px solid #2c7c63;background:#f1f8f4;color:#1c654f;border-radius:6px;padding:6px 9px;cursor:pointer}.question-option-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;margin:8px 0}.question-option-row span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#e2f2e8;color:#267256;font-size:12px;font-weight:800}.question-option-row input{margin:0}.question-option-remove{border:0;background:transparent;color:#a24b37;cursor:pointer;padding:7px}.question-option-remove:disabled{visibility:hidden}.question-point-list{max-height:180px;overflow:auto;border:1px solid #dce7e1;border-radius:8px;padding:7px 12px}.question-point-list .question-point-check{display:flex;align-items:center;gap:7px;margin:7px 0;font-weight:600}.question-point-check input{width:auto;margin:0}.question-point-check small{margin:0;font-size:11px}.question-editor-drawer footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 30px;border-top:1px solid #e2ebe6;background:#fbfdfb}.question-editor-drawer footer button{border-radius:8px;padding:10px 18px;font-weight:800;cursor:pointer}.question-cancel{border:1px solid #c8d8d0;background:#fff;color:#38544a}.question-save{border:1px solid #183f33;background:#dff06b;color:#17362d;box-shadow:3px 3px 0 #183f33}.question-save:disabled{opacity:.65;cursor:wait}@media(max-width:600px){.question-editor-drawer main{padding:20px}.question-editor-drawer header,.question-editor-drawer footer{padding-left:20px;padding-right:20px}.question-editor-grid{grid-template-columns:1fr}}

.operations-tabs{margin-bottom:24px}.operations-manager .el-radio-button__inner{padding:12px 22px}.operations-manager .page-toolbar{margin-top:0}
.application-review-form{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px}.application-review-form .el-form-item{margin:0!important}.application-review-form .application-review-actions .el-form-item__content{display:flex;align-items:center;gap:12px}.application-review-actions .el-button+.el-button{margin-left:0}.application-review-form .el-select{width:120px}

/* 听写维护与题库保持同一“低干扰、可核对”的工作台节奏。 */
.dictation-manager{padding:20px 24px;border-bottom:1px solid var(--ops-line);background:#fffdf7}.dictation-manager header{display:flex;align-items:center;justify-content:space-between;gap:18px}.dictation-manager header p{margin:0;color:#bf6b35;font:11px 'DM Mono';letter-spacing:1.2px}.dictation-manager h3{margin:5px 0 4px;font-size:18px}.dictation-manager h3 span{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:5px;border-radius:999px;color:#7a3c18;background:#ffe4b4;font:11px 'DM Mono';vertical-align:middle}.dictation-manager header small{color:#71837a;font-size:12px}.dictation-manager header button{padding:9px 12px;border:1px solid #a75d2f;border-radius:8px;color:#5f3017;background:#ffe4b4;font-weight:700;cursor:pointer;white-space:nowrap}.dictation-manager-list{display:grid;gap:8px;margin-top:14px}.dictation-manager-list article{display:grid;grid-template-columns:35px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 13px;border:1px solid #eee4d7;border-radius:10px;background:#fff}.dictation-order{display:grid;place-items:center;width:31px;height:31px;border-radius:8px;color:#8b4a25;background:#fff0d2;font:12px 'DM Mono';font-weight:700}.dictation-copy b,.dictation-copy small,.dictation-copy span{display:block}.dictation-copy b{font-size:13px}.dictation-copy small,.dictation-copy span{margin-top:4px;color:#71837a;font-size:12px}.dictation-copy span{color:#9a765e}.dictation-actions{display:flex;gap:8px}.dictation-actions button{border:0;color:#27765c;background:transparent;font:12px 'Noto Sans SC';cursor:pointer}.dictation-actions [data-dictation-delete]{color:#a55346}.dictation-manager-empty{margin:0;padding:13px;border:1px dashed #e0cdb4;border-radius:9px;color:#8b765f;font-size:12px}.dictation-word-note{margin:12px 0 0;color:#7c7164;font-size:12px}.dictation-editor-mask{position:fixed;inset:0;z-index:86;background:rgba(14,31,26,.44)}.dictation-editor-drawer{position:fixed;z-index:87;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:min(620px,100vw);background:#fff;box-shadow:-16px 0 40px rgba(12,33,27,.22);color:#17362d}.dictation-editor-drawer header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 30px;color:#fff;background:linear-gradient(120deg,#57301c,#a55e30)}.dictation-editor-drawer header p{margin:0 0 5px;color:#ffe4b4;font:12px/1.2 ui-monospace,monospace;letter-spacing:1.4px}.dictation-editor-drawer header h2{margin:0;font-size:25px}.dictation-editor-drawer header button{width:35px;height:35px;border:0;border-radius:50%;color:#fff;background:rgba(255,255,255,.15);font-size:28px;line-height:30px;cursor:pointer}.dictation-editor-drawer main{overflow:auto;padding:25px 30px 34px}.dictation-editor-drawer label{display:block;margin:17px 0;font-size:13px;font-weight:750}.dictation-editor-drawer input,.dictation-editor-drawer select,.dictation-editor-drawer textarea{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:10px 11px;border:1px solid #ded3c5;border-radius:8px;background:#fff;color:#17362d;font:inherit}.dictation-editor-drawer textarea{resize:vertical;line-height:1.55}.dictation-editor-drawer small{display:block;margin-top:6px;color:#806f61;font-weight:500;line-height:1.5}.dictation-editor-intro{padding:14px 16px;border:1px solid #f0dfc9;border-radius:10px;background:#fff8ec}.dictation-editor-intro b,.dictation-editor-intro span{display:block}.dictation-editor-intro b{font-size:17px}.dictation-editor-intro span{margin-top:4px;color:#7d6655;font-size:13px;line-height:1.55}.dictation-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.dictation-editor-drawer footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 30px;border-top:1px solid #eee6dd;background:#fffdfa}.dictation-editor-drawer footer button{padding:10px 18px;border-radius:8px;font-weight:800;cursor:pointer}.dictation-cancel{border:1px solid #d8cabb;color:#5f5045;background:#fff}.dictation-save{border:1px solid #62361f;color:#492714;background:#ffe4b4;box-shadow:3px 3px 0 #62361f}.dictation-save:disabled{opacity:.65;cursor:wait}@media(max-width:600px){.dictation-manager{padding:18px}.dictation-manager header{align-items:flex-start}.dictation-manager-list article{grid-template-columns:31px 1fr}.dictation-actions{grid-column:2}.dictation-editor-drawer main{padding:20px}.dictation-editor-drawer header,.dictation-editor-drawer footer{padding-left:20px;padding-right:20px}.dictation-editor-grid{grid-template-columns:1fr}}
