/* 后台原型采用品牌黑、玫红和白色；不依赖外部字体或 CDN。 */

/* 闭环处理台沿用主题变量，便于日间与夜间查看业务明细。 */
.closure-tabs { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 20px; }
.closure-table th:first-child { width:42%; }
.closure-table td:first-child small { max-width:520px; white-space:normal; line-height:1.8; }
.audit-list { display:grid; }
.audit-row { display:flex; align-items:flex-start; gap:14px; padding:16px 0; border-bottom:1px solid var(--line); }
.audit-row:last-child { border-bottom:0; }
.audit-mark { flex:none; width:7px; height:7px; margin-top:7px; border-radius:50%; background:var(--pink); }
.audit-row div { flex:1; }
.audit-row strong { font-size:15px; font-weight:500; }
.audit-row p { margin:6px 0 0; color:var(--muted); font-size:14px; line-height:1.6; }
.audit-row time { color:var(--muted); font-size:14px; white-space:nowrap; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.closure-queue { margin-top:20px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.store-actions { display:flex; gap:10px; align-items:center; }
@media(max-width:700px) { .form-row { grid-template-columns:1fr; } .audit-row time { display:none; } }
:root { --bg: #08080b; --panel: #121216; --raised: #19191f; --line: #292930; --text: #f5f4f8; --muted: #a19fae; --quiet: #797685; --pink: #ec008c; --pink-soft: #ff85cd; --green: #8fc8b1; --amber: #e5c585; --sidebar: 224px; font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', 'PingFang SC', sans-serif; color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; color: var(--text); background: var(--bg); font-size: 14px; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { outline-offset: 4px; }
:focus-visible { outline: 2px solid var(--pink-soft); }
button, select { cursor: pointer; }
button { color: inherit; }
button:disabled { cursor: not-allowed; opacity: .45; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p { margin: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: -60px; left: 16px; z-index: 100; background: var(--pink); padding: 12px 20px; border-radius: 5px; }
.skip-link:focus { top: 12px; }
.sidebar { width: var(--sidebar); position: fixed; inset: 0 auto 0 0; border-right: 1px solid var(--line); background: #0e0e12; display: flex; flex-direction: column; z-index: 30; }
.brand { position: relative; display: flex; align-items: center; gap: 8px; height: 124px; padding: 26px 20px 41px; }
.brand-symbol { width: 43px; height: 43px; object-fit: contain; }
.brand-wordmark { width: 126px; height: 31px; object-fit: contain; }
.brand > span { position: absolute; top: 78px; left: 28px; color: #9991a1; font-size: 12px; letter-spacing: 3.5px; }
.sidebar-label { display: flex; align-items: center; justify-content: space-between; padding: 0 22px 15px; color: #7a7484; font-size: 12px; letter-spacing: 1px; }
.sidebar-label span { font-size: 12px; letter-spacing: 1.5px; }
.side-nav { display: grid; gap: 5px; padding: 0 12px; overflow-y: auto; }
.nav-item { position: relative; display: flex; align-items: center; gap: 13px; padding: 12px 14px; color: #9e98aa; background: transparent; border: 1px solid transparent; border-radius: 6px; text-align: left; width: 100%; transition: background .18s, color .18s; font-size: 14px; }
.nav-item:hover { color: #fff; background: #1b1820; }
.nav-item.active { color: #fff; background: #361529; border-color: #66314e; }
.nav-item.active::before { content: ''; position: absolute; top: 12px; left: -13px; width: 3px; height: 19px; background: var(--pink); border-radius: 0 3px 3px 0; }
.nav-item svg { width: 17px; height: 17px; flex-shrink: 0; }
.nav-count { margin-left: auto; color: #caaaaf; border: 1px solid #70506c; border-radius: 4px; padding: 2px 5px; font-size: 12px; }
.nav-item .external { margin-left: auto; opacity: .55; }
.sidebar-bottom { margin-top: auto; padding: 20px 17px 17px; }
.portal-link { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; padding: 14px 11px; border: 1px solid var(--line); border-radius: 6px; background: #16121a; font-size: 14px; }
.portal-link:hover { border-color: #6a3652; }
.portal-icon { font-size: 23px; color: #df8abb; }
.portal-link small { display: block; margin-top: 6px; font-size: 12px; color: var(--quiet); }
.operator { display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--line); padding-top: 17px; font-size: 14px; }
.operator small { display: block; color: var(--quiet); margin-top: 5px; font-size: 12px; }
.online-dot { width: 5px; height: 5px; background: #89b7a0; border-radius: 50%; margin-left: auto; }
.avatar { display: inline-grid; flex-shrink: 0; width: 35px; height: 35px; place-items: center; color: #f2d5e7; background: #513041; border: 1px solid #6c475d; border-radius: 7px; font-size: 15px; }
.avatar.small { width: 30px; height: 30px; border-radius: 6px; font-size: 14px; }
.avatar.green { background: #243b32; border-color: #3b6554; color: #c8ddcf; }
.avatar.blue { background: #283345; border-color: #455870; color: #cbd5e5; }
.avatar.violet { background: #363044; border-color: #5b4e71; color: #d7c9e5; }
.main-shell { margin-left: var(--sidebar); min-height: 100vh; }
.topbar { height: 62px; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: #101013; }
.topbar-left, .topbar-right { display: flex; align-items: center; gap: 18px; }
.breadcrumb { color: #aaa3b2; font-size: 12px; letter-spacing: .5px; }
.breadcrumb span { color: #55505e; padding: 0 10px; }
.breadcrumb b { color: #e9e5ed; font-weight: 400; letter-spacing: 0; }
.prototype-badge { display: inline-block; padding: 5px 8px; border: 1px solid #58354b; background: #251922; color: #e4a4c8; border-radius: 4px; font-size: 12px; }
.today { color: #d4cfdb; font-size: 12px; }
.today span { color: #797282; margin-left: 10px; }
.icon-button { display: inline-grid; place-items: center; width: 31px; height: 31px; padding: 0; border: 1px solid #36303c; background: #17151b; border-radius: 5px; color: #ccc3d3; font-size: 20px; }
.icon-button:hover { color: white; border-color: #875577; }
.mobile-menu { display: none; }
.scopebar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 32px; border-bottom: 1px solid #211e27; }
.scope-controls { display: flex; gap: 16px; align-items: center; }
.scope-controls label { display: flex; align-items: center; gap: 11px; color: var(--quiet); font-size: 12px; }
select { padding: 8px 29px 8px 10px; color: #e5dfe9; border: 1px solid #35303b; border-radius: 4px; background: #16131b; font-size: 14px; }
.scope-controls select { min-width: 116px; }
.scope-divider { height: 20px; width: 1px; background: #2b2533; }
.scope-note { display: flex; align-items: center; gap: 7px; color: #7e7282; font-size: 12px; }
.pink-dot { width: 4px; height: 4px; background: var(--pink); border-radius: 50%; flex-shrink: 0; }
#main-content { padding: 30px 32px 22px; min-height: calc(100vh - 190px); }
.page-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 27px; }
.eyebrow { margin-bottom: 10px; color: var(--quiet); font-size: 12px; letter-spacing: 2.2px; }
.page-header h1 { font-size: 27px; font-weight: 500; letter-spacing: 1px; }
.page-description { color: var(--muted); font-size: 14px; line-height: 1.9; margin-top: 10px; }
.header-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; max-width: 100%; }
.header-actions .button { white-space: nowrap; }
.stat-meta .up { white-space: nowrap; flex-shrink: 0; margin-left: 8px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 35px; padding: 9px 14px; border: 1px solid #47404e; background: #211c27; color: #eee6f2; border-radius: 5px; font-size: 12px; line-height: 1.5; transition: border-color .18s, background .18s; }
.button:hover { border-color: #9a6689; background: #302234; }
.button.primary { background: var(--pink); border-color: var(--pink); color: #fff; }
.button.primary:hover { background: #ce007b; border-color: #ce007b; }
.button.subtle { background: transparent; border-color: #332d3b; color: #beb3c8; }
.button.small { min-height: 29px; padding: 5px 10px; font-size: 12px; }
.button.text { min-height: 0; padding: 0; border: 0; background: transparent; color: #f58cc8; }
.button svg { width: 13px; height: 13px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin-bottom: 22px; }
.stat-card { position: relative; padding: 19px 21px; border: 1px solid var(--line); background: var(--panel); border-radius: 7px; overflow: hidden; }
.stat-label { display: flex; align-items: center; justify-content: space-between; color: #aba2b6; font-size: 12px; }
.stat-label svg { width: 16px; height: 16px; color: #76657c; }
.stat-value { font-family: Bahnschrift, 'DIN Alternate', sans-serif; font-size: 36px; font-weight: 400; margin-top: 15px; line-height: 1; }
.stat-value small { font-family: 'Microsoft YaHei', sans-serif; font-size: 12px; color: var(--quiet); margin-left: 7px; }
.stat-meta { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; color: #7f7188; font-size: 12px; }
.stat-meta .up { color: #ca8aae; }
.grid-main { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(260px, 1fr); gap: 22px; align-items: start; }
.grid-main.equal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.panel { padding: 22px; border: 1px solid var(--line); background: var(--panel); border-radius: 7px; min-width: 0; }
.panel + .panel { margin-top: 22px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 22px; }
.panel-head h2 { font-size: 15px; font-weight: 500; }
.panel-head .caption { color: var(--quiet); font-size: 12px; }
.section-gap { margin-top: 22px; }
.hero-banner { position: relative; overflow: hidden; padding: 25px 27px; background: #27131f; border: 1px solid #6a3152; border-radius: 7px; margin-bottom: 22px; }
.hero-banner::after { position: absolute; content: ''; right: -50px; top: -70px; width: 300px; height: 300px; border: 1px solid #623048; transform: rotate(40deg); pointer-events: none; }
.hero-banner::before { position: absolute; content: ''; right: -10px; top: -20px; width: 185px; height: 185px; border: 1px solid #623048; transform: rotate(40deg); pointer-events: none; }
.hero-banner h2 { position: relative; font-size: 22px; font-weight: 500; margin: 12px 0 10px; z-index: 1; }
.hero-banner p { position: relative; color: #c5a9bd; font-size: 14px; line-height: 1.9; max-width: 73%; z-index: 1; }
.hero-actions { display: flex; gap: 13px; align-items: center; margin-top: 20px; position: relative; z-index: 1; }
.badge { display: inline-block; padding: 4px 7px; border-radius: 3px; color: #b9adbf; background: #29232f; font-size: 12px; white-space: nowrap; line-height: 1.5; }
.badge.pink { color: #f98bca; background: #3b1a30; }
.badge.green { color: #9bc9b1; background: #1f3028; }
.badge.amber { color: #e6cb95; background: #362e20; }
.badge.blue { color: #a4bedc; background: #202b3a; }
.badge.outline { color: #ab9ab9; border: 1px solid #423549; background: transparent; }
.row-list { display: grid; }
.list-row { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-bottom: 1px solid #2a2331; }
.list-row:first-child { padding-top: 0; }
.list-row:last-child { padding-bottom: 0; border-bottom: 0; }
.list-row h3 { font-size: 14px; font-weight: 500; line-height: 1.7; }
.list-row p { color: #95869f; font-size: 12px; margin-top: 5px; line-height: 1.8; }
.row-body { flex: 1; min-width: 0; }
.row-right { margin-left: auto; text-align: right; flex-shrink: 0; }
.time-label { font-family: Bahnschrift, sans-serif; font-size: 17px; color: #b99aae; }
.muted { color: var(--muted); font-size: 14px; line-height: 1.9; }
.quiet { color: var(--quiet); font-size: 12px; line-height: 1.8; }
.progress { height: 3px; border-radius: 2px; background: #372b3d; overflow: hidden; }
.progress > span { display: block; height: 100%; background: var(--pink); }
.progress.green > span { background: #86af99; }
.pipeline { display: flex; gap: 0; align-items: start; padding: 5px 0 0; }
.pipeline-step { position: relative; flex: 1; padding-right: 7px; min-width: 0; }
.pipeline-step::after { content: ''; position: absolute; top: 14px; left: 30px; right: 2px; height: 1px; background: #4f3449; }
.pipeline-step:last-child::after { display: none; }
.pipeline-step .step-number { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid #81516d; background: #362230; color: #f9a4d5; border-radius: 50%; font-family: Bahnschrift, sans-serif; font-size: 12px; }
.pipeline-step b { display: block; font-size: 12px; line-height: 1.8; font-weight: 400; margin-top: 12px; }
.pipeline-step small { display: block; color: #74657d; font-size: 12px; margin-top: 4px; }
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 20px; }
.filter-group { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.input { min-height: 35px; padding: 9px 11px; color: #eee5f3; background: #100d14; border: 1px solid #403447; border-radius: 5px; line-height: 1.6; font-size: 12px; width: 100%; }
.input::placeholder { color: #807288; }
.search-box { position: relative; min-width: 200px; max-width: 270px; flex: 1; }
.search-box > svg { position: absolute; top: 10px; left: 11px; width: 14px; height: 14px; color: #927c9e; }
.search-box .input { padding-left: 34px; }
.tabs { display: flex; gap: 5px; padding: 4px; background: #17111f; border: 1px solid #302637; border-radius: 6px; }
.tab { padding: 7px 13px; border: 0; background: transparent; color: #9b8aa7; border-radius: 4px; font-size: 12px; }
.tab.active { color: #fff; background: #3c2037; }
.tab:hover { color: #fff; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 12px; }
.data-table th { font-size: 12px; color: #96869f; font-weight: 400; padding: 0 14px 13px 0; border-bottom: 1px solid #38283f; white-space: nowrap; }
.data-table td { padding: 17px 14px 17px 0; border-bottom: 1px solid #292030; line-height: 1.7; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #19121f; }
.data-table td small { display: block; font-size: 12px; color: #92809d; margin-top: 3px; }
.data-table .name-cell { display: flex; align-items: center; gap: 11px; min-width: 112px; }
.data-table .name-cell b { font-weight: 500; }
.data-table .nowrap { white-space: nowrap; }
.table-foot { margin-top: 15px; padding-top: 13px; border-top: 1px solid #2b2032; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #8b7797; font-size: 12px; }
.callout { padding: 13px 16px; color: #d6bccf; background: #28151f; border: 1px solid #4d273c; border-left: 2px solid var(--pink); border-radius: 5px; font-size: 12px; line-height: 1.9; margin-bottom: 21px; }
.callout strong { color: #fae7f2; font-weight: 500; }
.callout.neutral { border-color: #352d3d; border-left-color: #8c759f; background: #201827; color: #c3b2d0; }
.empty { padding: 40px 20px; color: #ad94b9; text-align: center; font-size: 14px; line-height: 2; }
.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.card-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.content-card { border: 1px solid #36253f; background: #17111d; border-radius: 7px; padding: 21px; }
.card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.content-card h3 { font-size: 16px; font-weight: 500; line-height: 1.7; }
.content-card p { color: #a28cad; font-size: 12px; line-height: 1.9; margin-top: 10px; }
.card-bottom { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 19px; padding-top: 15px; border-top: 1px solid #3c2944; color: #9e83ad; font-size: 12px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 20px; }
.detail-item dt { color: #9d89aa; font-size: 12px; margin-bottom: 7px; }
.detail-item dd { margin: 0; font-size: 14px; line-height: 1.9; color: #eee0f3; }
.detail-item.full { grid-column: 1 / -1; }
.detail-block { margin-bottom: 23px; }
.detail-block h3 { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; font-weight: 500; margin-bottom: 15px; }
.detail-block h3 small { color: #a488b3; font-size: 12px; font-weight: 400; }
.detail-block + .detail-block { padding-top: 23px; border-top: 1px solid #37273f; }
.child-card { border: 1px solid #513348; background: #291720; border-radius: 6px; padding: 15px; margin-bottom: 10px; }
.child-card.selected { border-color: #e35caa; }
.child-card header { display: flex; align-items: center; gap: 11px; }
.child-card header strong { font-size: 14px; font-weight: 500; }
.child-card header small { display: block; color: #b892ac; font-size: 12px; margin-top: 4px; }
.child-card p { font-size: 12px; color: #c6a5bd; margin-top: 13px; line-height: 1.9; }
.timeline { display: grid; gap: 17px; }
.timeline-item { position: relative; padding-left: 19px; }
.timeline-item::before { position: absolute; left: 0; top: 3px; width: 5px; height: 5px; background: #c068a0; border-radius: 50%; content: ''; }
.timeline-item::after { position: absolute; left: 2px; top: 13px; bottom: -14px; background: #503248; width: 1px; content: ''; }
.timeline-item:last-child::after { display: none; }
.timeline-item strong { font-size: 12px; font-weight: 500; }
.timeline-item p { font-size: 12px; color: #b497bf; margin-top: 5px; line-height: 1.8; }
.timeline-item small { display: block; color: #8a7095; font-size: 12px; margin-top: 5px; }
.lesson-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.lesson-card { padding: 19px; background: #17101d; border: 1px solid #3d2946; border-radius: 7px; }
.lesson-card .lesson-time { color: #f7d9ec; font-family: Bahnschrift, sans-serif; font-size: 21px; line-height: 1.3; margin: 15px 0 12px; }
.lesson-card h3 { font-size: 15px; font-weight: 500; }
.lesson-card p { font-size: 12px; color: #b898c7; line-height: 1.9; margin-top: 11px; }
.lesson-card footer { display: flex; justify-content: space-between; align-items: center; padding-top: 15px; margin-top: 16px; border-top: 1px solid #3a2643; }
.week-strip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 9px; margin-bottom: 20px; }
.day-button { padding: 12px; border: 1px solid #3a2944; border-radius: 6px; background: #17101d; color: #ac90bb; text-align: center; }
.day-button span { display: block; font-size: 12px; }
.day-button b { display: block; font-family: Bahnschrift, sans-serif; font-size: 22px; font-weight: 400; margin: 8px 0; }
.day-button small { font-size: 12px; color: #846591; }
.day-button.active { border-color: var(--pink); background: #401329; color: #fff; }
.day-button.active small { color: #e4a3cb; }
.score-number { font-family: Bahnschrift, sans-serif; font-size: 45px; font-weight: 400; color: #fbe8f4; }
.score-number small { font-size: 14px; color: #b183a3; }
.score-lines { display: grid; gap: 17px; margin-top: 20px; }
.score-line header { display: flex; justify-content: space-between; gap: 16px; font-size: 12px; margin-bottom: 9px; color: #c6a3d4; }
.score-line header b { color: #f3d9ef; font-family: Bahnschrift, sans-serif; font-weight: 400; }
.evidence-card { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid #573048; background: #2e1520; border-radius: 5px; margin-top: 12px; }
.evidence-icon { width: 44px; height: 44px; display: grid; place-items: center; color: #f386be; background: #462033; border-radius: 5px; font-size: 19px; }
.evidence-card strong { font-size: 12px; font-weight: 500; }
.evidence-card p { font-size: 12px; color: #b18b9f; margin-top: 5px; }
.avatar-stack { display: flex; padding-left: 0; }
.avatar-stack .avatar { width: 28px; height: 28px; font-size: 12px; margin-left: -5px; border: 2px solid #151018; border-radius: 50%; }
.avatar-stack .avatar:first-child { margin-left: 0; }
.kanban { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-top: 20px; align-items: start; }
.kanban-column { min-height: 250px; padding: 14px 12px; border: 1px solid #34263c; background: #130e19; border-radius: 6px; }
.kanban-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 17px; font-size: 12px; }
.kanban-title small { color: #a483b5; padding: 3px 6px; background: #2f2039; border-radius: 3px; font-size: 12px; }
.task-card { padding: 14px 12px; margin-bottom: 11px; border: 1px solid #50305e; background: #24152e; border-radius: 5px; }
.task-card h3 { font-size: 12px; line-height: 1.8; font-weight: 500; margin: 11px 0; }
.task-card p { color: #b293c4; font-size: 12px; line-height: 1.8; }
.task-card footer { margin-top: 12px; padding-top: 10px; border-top: 1px solid #553166; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.task-card .button { font-size: 12px; }
.task-card.completed { background: #1b2420; border-color: #3a5345; }
.task-card.completed p { color: #91b59f; }
.task-card.completed footer { border-color: #334d3d; }
.module-card { width: 100%; text-align: left; color: inherit; border: 1px solid #3a2744; background: #19111f; border-radius: 7px; padding: 21px; }
.module-card:hover { background: #28152f; border-color: #92527d; }
.module-card svg { width: 22px; height: 22px; color: #dd8bbf; }
.module-card h3 { font-size: 15px; font-weight: 500; margin: 18px 0 10px; }
.module-card p { color: #b18bc3; font-size: 12px; line-height: 1.8; }
.module-card footer { color: #e392c2; display: flex; justify-content: space-between; margin-top: 20px; font-size: 12px; }
.form-field { display: grid; gap: 9px; margin-bottom: 17px; color: #dbbddf; font-size: 12px; }
.form-field textarea { min-height: 90px; resize: vertical; }
.form-hint { color: #ab7bb6; font-size: 12px; line-height: 1.8; }
.form-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 22px; padding-top: 20px; border-top: 1px solid #4d2c57; }
.form-error { color: #ffa9b7; border: 1px solid #9f4a69; background: #421a2a; padding: 12px; border-radius: 4px; font-size: 12px; line-height: 1.8; margin-top: 15px; }
.check-list { display: grid; gap: 10px; }
.check-option { display: flex; align-items: start; gap: 10px; padding: 13px; border: 1px solid #583360; border-radius: 5px; background: #27132f; color: #e4c6ec; font-size: 12px; line-height: 1.8; cursor: pointer; }
.check-option small { display: block; color: #b484c1; font-size: 12px; }
input[type='checkbox'] { width: 14px; height: 14px; accent-color: var(--pink); margin-top: 3px; }
.range-field { margin-bottom: 19px; }
.range-field header { display: flex; justify-content: space-between; margin-bottom: 10px; color: #dfb2e6; font-size: 12px; }
input[type='range'] { width: 100%; accent-color: var(--pink); cursor: pointer; }
.approval-box { padding: 15px; color: #b4d7c6; border: 1px solid #44765b; background: #1c3325; border-radius: 5px; font-size: 12px; line-height: 1.9; }
.summary-box { padding: 16px; border: 1px solid #744166; background: #321a2a; border-radius: 6px; }
.summary-box h4 { font-size: 14px; font-weight: 500; margin-bottom: 10px; }
.summary-box p { color: #d5aac7; font-size: 12px; line-height: 2; }
.workspace-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 18px 32px 22px; border-top: 1px solid #221a29; font-size: 12px; color: #756180; letter-spacing: .8px; }
.footer-version { margin-left: 12px; color: #a07cb2; font-size: 12px; }
.overlay { position: fixed; inset: 0; z-index: 60; display: flex; align-items: stretch; justify-content: flex-end; background: rgba(0, 0, 0, .7); backdrop-filter: blur(3px); }
.dialog { width: min(570px, 95vw); height: 100%; background: #1b101f; box-shadow: -20px 0 60px #0008; border-left: 1px solid #63416c; display: flex; flex-direction: column; }
.dialog.modal { width: min(610px, 92vw); max-height: 88vh; height: auto; margin: auto; border: 1px solid #63416c; border-radius: 10px; }
.dialog-header { padding: 25px 27px 22px; display: flex; align-items: start; justify-content: space-between; gap: 15px; border-bottom: 1px solid #503054; }
.dialog-header h2 { font-size: 21px; line-height: 1.6; font-weight: 500; }
.dialog-header .eyebrow { color: #b080c0; }
.dialog-body { padding: 25px 27px; overflow-y: auto; flex: 1; }
.dialog-body .input { border-color: #704077; background: #211027; }
.toast-container { position: fixed; z-index: 90; right: 25px; bottom: 25px; display: grid; gap: 10px; max-width: min(400px, calc(100vw - 40px)); }
.toast { padding: 14px 18px; color: #fbd9ef; border: 1px solid #9d3978; background: #42152f; border-radius: 6px; box-shadow: 0 15px 35px #0006; font-size: 14px; line-height: 1.8; animation: toast-in .2s ease both; }
/* 常用业务文字保持可读，细小编号只用于次要装饰。 */
.page-description, .muted, .data-table { font-size: 14px; }
.panel-head h2 { font-size: 16px; }
.button, .input, select, .stat-label, .tab, .form-field { font-size: 14px; }
.data-table th, .data-table td small, .badge, .list-row p, .quiet, .form-hint, .form-error, .content-card p, .lesson-card p, .detail-item dt { font-size: 12px; }
.list-row h3 { font-size: 14px; }
.score-line header, .summary-box p, .callout, .detail-item dd, .child-card p, .check-option { font-size: 14px; }
.stat-meta, .table-foot, .panel-head .caption, .timeline-item p { font-size: 12px; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 1650px) { #main-content { padding: 35px 45px 25px; } .topbar, .scopebar { padding-left: 45px; padding-right: 45px; } .stat-card { padding: 23px 25px; } .panel { padding: 27px; } .hero-banner { padding: 30px; } }
@media (max-width: 1190px) { :root { --sidebar: 200px; } .brand { padding-left: 16px; } .brand-symbol { width: 36px; height: 36px; } .brand-wordmark { width: 120px; } #main-content { padding: 26px 24px 22px; } .topbar, .scopebar { padding-left: 24px; padding-right: 24px; } .topbar-left { gap: 12px; } .today span { display: none; } .grid-main { grid-template-columns: minmax(0, 1.55fr) minmax(240px, 1fr); gap: 18px; } .panel { padding: 19px; } .card-grid, .lesson-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kanban { grid-template-columns: repeat(2, minmax(0, 1fr)); } .scope-note { font-size: 12px; } .stat-card { padding: 17px; } }
@media (max-width: 1023px) { .grid-main, .grid-main.equal { grid-template-columns: 1fr; } .pipeline { flex-wrap: wrap; row-gap: 20px; } .pipeline-step { flex: 1 0 25%; } .pipeline-step:nth-child(4)::after { display: none; } .scope-note { display: none; } .topbar-right .today { display: none; } .prototype-badge { font-size: 12px; } }
@media (max-width: 760px) { :root { --sidebar: 224px; } .sidebar { transform: translateX(-100%); transition: transform .2s; } .sidebar.open { transform: translateX(0); } .sidebar-scrim { position: fixed; inset: 0; z-index: 25; background: #0009; } .main-shell { margin-left: 0; } .mobile-menu { display: inline-grid; } .topbar { padding: 0 17px; height: 58px; } .breadcrumb { font-size: 12px; } .breadcrumb span { padding: 0 5px; } .prototype-badge { display: none; } .scopebar { padding: 13px 17px; } .scope-controls { gap: 10px; } .scope-controls label { gap: 7px; font-size: 12px; } .scope-controls select { min-width: 105px; font-size: 12px; padding-right: 20px; } #main-content { padding: 24px 17px 20px; } .page-header { flex-wrap: wrap; gap: 15px; } .page-header h1 { font-size: 25px; } .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; } .stat-value { font-size: 31px; } .stat-meta { font-size: 12px; } .hero-banner { padding: 22px; } .hero-banner h2 { font-size: 21px; } .hero-banner p { max-width: 90%; } .card-grid, .card-grid.two, .lesson-grid { grid-template-columns: 1fr; } .kanban { gap: 10px; } .kanban-column { padding: 12px 9px; } .task-card { padding: 12px 10px; } .week-strip { gap: 5px; } .day-button { padding: 10px 3px; } .day-button b { font-size: 19px; } .day-button small { font-size: 12px; } .toolbar { align-items: start; } .search-box { max-width: none; } .workspace-footer { padding: 17px; flex-direction: column; align-items: start; gap: 10px; font-size: 12px; } .dialog-header, .dialog-body { padding: 22px; } .topbar-left { gap: 10px; } .dialog { width: 95vw; } .toast-container { right: 17px; bottom: 17px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* 小狮助手设置沿用日夜主题；帮助内容不改变账号权限。 */
.assistant-settings-layout { display:grid; grid-template-columns:minmax(0, 1.75fr) minmax(290px, 1fr); gap:22px; align-items:start; }
.assistant-settings-layout > div, .assistant-config-preview { min-width:0; }
.assistant-config-preview { position:sticky; top:20px; }
.assistant-settings-panel .form-field, .assistant-settings-panel .check-option, .assistant-settings-panel .check-option small, .assistant-settings-panel .input, .assistant-settings-panel .button, .assistant-settings-panel .summary-box p, .assistant-settings-panel .quiet { font-size:14px; }
.assistant-settings-panel > form > .check-option { margin-bottom:20px; }
.assistant-settings-hint { color:var(--muted); font-size:14px; line-height:1.8; margin-top:14px; }
.assistant-role-welcomes { display:grid; gap:0; }
.assistant-role-options { display:flex; flex-wrap:wrap; gap:10px; }
.assistant-role-options .check-option { flex:1; min-width:110px; }
.assistant-question-list { display:grid; gap:16px; }
.assistant-question-item { border:1px solid var(--line); background:var(--raised); border-radius:8px; padding:18px; }
.assistant-question-item header { display:flex; align-items:flex-start; gap:12px; }
.assistant-question-item header > div { flex:1; min-width:0; }
.assistant-question-item h3 { font-size:16px; line-height:1.7; font-weight:500; overflow-wrap:anywhere; }
.assistant-question-item p { font-size:14px; color:var(--muted); line-height:1.8; margin-top:6px; white-space:pre-wrap; overflow-wrap:anywhere; }
.assistant-question-index { color:var(--pink); font-family:Bahnschrift,sans-serif; font-size:20px; flex:none; padding-top:3px; }
.assistant-question-answer { margin:14px 0; padding:12px 14px; border:1px solid var(--line); border-radius:5px; background:var(--panel); }
.assistant-question-answer > span { font-size:14px; color:var(--text); }
.assistant-question-item footer { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.assistant-role-badges { display:flex; gap:6px; flex-wrap:wrap; }
.assistant-role-badges .badge { font-size:14px; }
.assistant-question-actions { display:flex; gap:7px; flex-wrap:wrap; }
.assistant-question-actions .button { padding:7px 10px; }
.assistant-preview-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.assistant-preview-tabs .tab { font-size:14px; }
.assistant-preview-intro { display:flex; align-items:flex-start; gap:12px; margin:22px 0; }
.assistant-preview-intro img { width:44px; height:44px; object-fit:contain; padding:6px; border:1px solid var(--line); border-radius:12px; background:var(--raised); }
.assistant-preview-intro h3 { font-size:17px; font-weight:500; line-height:1.6; }
.assistant-preview-intro p { font-size:14px; color:var(--muted); line-height:1.9; margin-top:6px; white-space:pre-wrap; overflow-wrap:anywhere; }
.assistant-preview-questions { display:grid; gap:10px; }
.assistant-preview-questions .button { justify-content:space-between; text-align:left; font-size:14px; }
.assistant-preview-paused { padding:16px; border:1px dashed var(--line); border-radius:6px; font-size:14px; color:var(--muted); line-height:1.9; }
.assistant-permission-notes { padding-left:20px; color:var(--muted); font-size:14px; line-height:2; margin:0; }
.assistant-permission-notes li + li { margin-top:10px; }
.assistant-preview-conversation { display:grid; gap:18px; }
.assistant-preview-user { margin-left:40px; padding:14px 16px; border-radius:14px 14px 3px 14px; border:1px solid var(--pink); color:var(--text); background:var(--raised); font-size:14px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.assistant-preview-reply { margin-right:30px; padding:16px; border:1px solid var(--line); background:var(--panel); border-radius:14px 14px 14px 3px; }
.assistant-preview-reply strong { color:var(--pink); font-size:14px; font-weight:500; }
.assistant-preview-reply p { color:var(--text); font-size:14px; line-height:1.9; margin-top:10px; white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:1150px) { .assistant-settings-layout { grid-template-columns:minmax(0, 1fr); } .assistant-config-preview { position:static; } }
@media (max-width:760px) { .assistant-question-item { padding:14px; } .assistant-question-item header { flex-wrap:wrap; } .assistant-question-item header > .badge { margin-left:32px; } .assistant-question-actions { width:100%; } .assistant-role-options .check-option { min-width:calc(50% - 10px); } }
