/* 思孟堂管理端 - 设计规范：深松绿 / 暖土黄 / 米白底 */
:root {
  --brand: #433F3F;
  --brand-light: #565151;
  --gold: #FCCF00;
  --bg: #F6F3E9;
  --card: #ffffff;
  --green: #4a9d6a;
  --orange: #e8944a;
  --red: #d05454;
  --text: #1f2937;
  --text-2: #6b7280;
  --text-3: #9ca3af;
  --line: #e5e7eb;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: "PingFang SC", -apple-system, "Microsoft YaHei", sans-serif; background: var(--bg); color: var(--text); font-size: 14px; }
.hidden { display: none !important; }

/* ---- 登录 ---- */
.login-mask { position: fixed; inset: 0; background: linear-gradient(135deg, #433F3F 0%, #565151 100%); display: flex; align-items: center; justify-content: center; z-index: 100; }
.login-card { background: var(--card); border-radius: 16px; padding: 40px 36px; width: 380px; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.login-logo { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 16px; background: var(--brand); color: var(--gold); font-size: 34px; display: flex; align-items: center; justify-content: center; }
.login-card h2 { margin-bottom: 4px; }
.login-sub { color: var(--text-2); margin-bottom: 24px; }
.login-card input { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 14px; font-size: 14px; outline: none; }
.login-card input:focus { border-color: var(--brand); }
.login-tip { color: var(--text-3); font-size: 12px; margin-top: 14px; }
.login-filing { color: var(--text-2); font-size: 12px; margin-top: 20px; }
.filing-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.main-footer .filing-link { display: inline-block; margin-top: 8px; }

/* ---- 布局 ---- */
.layout { display: flex; min-height: 100vh; }
.sidebar { width: 220px; background: var(--brand); color: #e8ede9; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.brand { display: flex; gap: 10px; align-items: center; padding: 20px 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand-mark { width: 40px; height: 40px; border-radius: 10px; background: rgba(212,160,86,.18); color: var(--gold); font-size: 22px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.brand b { font-size: 16px; display: block; }
.brand i { font-style: normal; font-size: 11px; color: #9db3a8; }
#nav { flex: 1; padding: 12px 10px; overflow-y: auto; }
#nav a { display: flex; align-items: center; gap: 10px; padding: 11px 14px; color: #C5BFB7; text-decoration: none; border-radius: 10px; margin-bottom: 2px; font-size: 14px; }
#nav a span { width: 20px; text-align: center; opacity: .85; }
#nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
#nav a.active { background: var(--gold); color: #433F3F; font-weight: 600; }
.sidebar-foot { padding: 14px; border-top: 1px solid rgba(255,255,255,.08); }
.sos-banner { background: rgba(212,160,86,.15); border: 1px dashed rgba(212,160,86,.5); color: #e8cf9e; font-size: 12px; text-align: center; border-radius: 10px; padding: 10px; margin-bottom: 10px; line-height: 1.7; }

.main { flex: 1; min-width: 0; }
.topbar { height: 60px; background: var(--card); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 0 24px; position: sticky; top: 0; z-index: 10; }
.topbar h1 { font-size: 18px; }
.muted { color: var(--text-3); font-size: 12px; }
.view { padding: 24px; }

/* ---- 组件 ---- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 8px 16px; border-radius: 10px; border: none; font-size: 13px; cursor: pointer; transition: .15s; font-family: inherit; }
.btn-primary { background: var(--brand); color: #fff; }
.btn-primary:hover { background: var(--brand-light); }
.btn-gold { background: var(--gold); color: #3d2c10; font-weight: 600; }
.btn-gold:hover { filter: brightness(1.05); }
.btn-ghost { background: transparent; color: inherit; border: 1px solid var(--line); }
.btn-danger { background: #fbeaea; color: var(--red); }
.btn-sm { padding: 5px 10px; font-size: 12px; border-radius: 8px; }
.btn-block { width: 100%; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

.card { background: var(--card); border-radius: 12px; box-shadow: 0 1px 3px rgba(0,0,0,.05); padding: 18px; margin-bottom: 16px; }
.card h3 { font-size: 15px; margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; }
.card h3 .muted { font-weight: 400; font-size: 12px; }

.grid { display: grid; gap: 14px; }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 1100px) { .grid-4 { grid-template-columns: repeat(2, 1fr); } .grid-3 { grid-template-columns: 1fr; } }

.stat { background: var(--card); border-radius: 12px; padding: 18px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.stat .label { color: var(--text-2); font-size: 12px; margin-bottom: 6px; }
.stat .value { font-size: 26px; font-weight: 700; color: var(--brand); }
.stat .sub { font-size: 12px; color: var(--text-3); margin-top: 4px; }
.stat.warn .value { color: var(--orange); }
.stat.danger .value { color: var(--red); }
.stat.gold .value { color: #b07f35; }

table { width: 100%; border-collapse: collapse; }
th { text-align: left; font-size: 12px; color: var(--text-2); font-weight: 500; padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
td { padding: 12px; border-bottom: 1px solid #f0f2f4; font-size: 13px; vertical-align: middle; }
tr:hover td { background: #fafaf7; }
.table-wrap { overflow-x: auto; }

.tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; line-height: 1.4; white-space: nowrap; }
.tag-green { background: #e8f4ec; color: var(--green); }
.tag-orange { background: #faeede; color: var(--orange); }
.tag-red { background: #fae6e6; color: var(--red); }
.tag-gray { background: #f1f2f4; color: var(--text-2); }
.tag-blue { background: #e7eef7; color: #3d6b9e; }
.tag-gold { background: #f7ecd9; color: #a3742f; }
.tag-purple { background: #efe9f7; color: #7a5fa8; }

.badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 3px 10px; border-radius: 8px; }
.badge-ok { background: #e8f4ec; color: var(--green); }
.badge-no { background: #fae6e6; color: var(--red); }

.form-row { display: flex; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.form-item { flex: 1; min-width: 160px; }
.form-item label { display: block; font-size: 12px; color: var(--text-2); margin-bottom: 6px; }
.form-item input, .form-item select, .form-item textarea {
  width: 100%; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 13px; font-family: inherit; outline: none; background: #fff;
}
.form-item input:focus, .form-item select:focus, .form-item textarea:focus { border-color: var(--brand); }
.form-item textarea { resize: vertical; min-height: 70px; }
.filters { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; align-items: center; }
.filters select, .filters input { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 13px; background: #fff; }

.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--brand); color: var(--gold); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; }

/* 弹层 */
.modal-mask { position: fixed; inset: 0; background: rgba(67,63,63,.45); display: flex; align-items: center; justify-content: center; z-index: 90; padding: 20px; }
.modal { background: #fff; border-radius: 14px; width: 640px; max-width: 100%; max-height: 88vh; display: flex; flex-direction: column; box-shadow: 0 24px 60px rgba(0,0,0,.25); }
.modal-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.modal-head h3 { font-size: 15px; }
.modal-close { border: none; background: none; font-size: 15px; cursor: pointer; color: var(--text-2); }
.modal-body { padding: 20px; overflow-y: auto; }
.modal-foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }

/* 时间线 */
.timeline { list-style: none; }
.timeline li { position: relative; padding: 0 0 16px 22px; }
.timeline li::before { content: ''; position: absolute; left: 5px; top: 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.timeline li::after { content: ''; position: absolute; left: 8px; top: 18px; bottom: 0; width: 1px; background: var(--line); }
.timeline li:last-child::after { display: none; }
.timeline .t-at { font-size: 11px; color: var(--text-3); }
.timeline .t-role { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 6px; margin: 0 6px; }
.r-parent { background: #e7eef7; color: #3d6b9e; }
.r-coach { background: #f7ecd9; color: #a3742f; }
.r-admin { background: #e8f4ec; color: var(--green); }
.r-system { background: #efe9f7; color: #7a5fa8; }

/* toast */
.toast-wrap { position: fixed; top: 20px; right: 20px; z-index: 200; display: flex; flex-direction: column; gap: 8px; }
.toast { background: var(--brand); color: #fff; padding: 11px 18px; border-radius: 10px; font-size: 13px; box-shadow: 0 8px 24px rgba(0,0,0,.2); animation: slideIn .25s; }
.toast.err { background: var(--red); }
@keyframes slideIn { from { transform: translateX(30px); opacity: 0; } to { transform: none; opacity: 1; } }

.empty { text-align: center; color: var(--text-3); padding: 40px 0; }
.stars { color: var(--gold); letter-spacing: 2px; }
.rate-pill { display: inline-flex; gap: 4px; }
.pct { font-size: 22px; font-weight: 700; color: var(--brand); }
.safe-note { font-size: 12px; color: var(--text-2); background: #F6F3E9; border-left: 3px solid var(--green); padding: 10px 14px; border-radius: 0 8px 8px 0; margin-bottom: 14px; line-height: 1.8; }
/* 运营台布局与无内联脚本交互 */
body { line-height: 1.6; }
button, input, select, textarea { font: inherit; }
button:focus-visible, a:focus-visible { outline: 3px solid #FCCF00; outline-offset: 3px; }
a { color: var(--brand); text-decoration: none; }
.login-mask { gap: 10vw; padding: 40px; background: #433F3F; overflow-y: auto; }
.login-story { width: 480px; color: #F6F3E9; position: relative; }
.login-story::before { content:''; width: 330px; height: 330px; position: absolute; border: 1px solid rgba(212,160,86,.1); border-radius: 50%; top: -90px; left: -130px; pointer-events:none; }
.eyebrow { font-size: 10px; letter-spacing: 1.8px; color: #8D877D; font-weight: 600; }
.login-story .eyebrow { color: #FCCF00; font-size: 11px; }
.login-story h1 { font-size: 48px; font-weight: 500; line-height: 1.45; letter-spacing: 2px; margin: 30px 0 20px; }
.login-story p { color: #acc2b6; line-height: 2; font-size: 15px; }
.story-flow { display:flex; align-items:center; gap: 14px; font-size:12px; margin-top: 48px; }
.story-flow span { width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; }
.story-flow i { color: #FCCF00; font-style:normal; }
.story-foot { font-size:11px; color:#8ca89a; margin-top:50px; letter-spacing:2px; }
.login-card { width: 410px; padding: 44px 38px; border-radius: 22px; position:relative; box-shadow: 0 20px 80px #09201955; }
.login-card label { text-align:left; display:block; font-size:12px; color:var(--text-2); margin:24px 0 7px; }
.login-sub { font-size:12px; margin-bottom:5px; }
.login-card .btn { min-height:44px; justify-content:space-between; padding:10px 18px; }
.login-logo { background: #F6F3E9; border:1px solid #E4DFD4; }
.login-tip { line-height:1.8; }
.form-error { color:var(--red); font-size:12px; text-align:left; margin-top:12px; min-height:18px; }
.sidebar { width: 228px; background:#433F3F; flex-shrink:0; }
.brand { padding:26px 22px; }
.brand b { font-size:20px; letter-spacing:4px; font-weight:500; }
.brand i { font-size:10px; letter-spacing:2px; margin-top:2px; }
.brand-mark { border:1px solid #56715f; border-radius:10px; background:transparent; }
.nav-label { font-size:10px; color:#B0A99F; letter-spacing:2px; padding:22px 25px 4px; }
#nav { padding:10px 13px; }
#nav a { font-size:12px; padding:10px 14px; gap:13px; border-radius:7px; margin-bottom:5px; }
#nav a.active { background:#FCCF00; color:#433F3F; box-shadow:inset 3px 0 var(--gold); }
#nav a span { font-size:18px; font-weight:normal; color:#C1B9AF; }
#nav a.active span { color:#FCCF00; }
.sidebar-foot { padding:14px 20px 20px; }
.sos-banner { border:1px solid #4e6757; background:#223e32; font-size:10px; color:#b5c6b8; text-align:left; padding:11px 12px; }
.sos-banner b { color:#dcc18c; font-size:11px; font-weight:500; }
.sidebar-foot .btn { border-color:#4d6356; color:#C5BFB7; font-size:11px; }
.topbar { height:82px; padding:0 32px; background:#fffefa; }
.topbar h1 { font-size:18px; font-weight:600; margin-top:2px; }
.topbar-actions { display:flex; align-items:center; gap:15px; }
.topbar-actions .muted { font-size:10px; }
.view { padding:28px 32px; max-width:1800px; margin:auto; }
.main-footer { padding:0 32px 24px; color:#a1a69e; font-size:10px; text-align:center; }
.mode-banner { padding:12px 32px; background:#faf0d9; font-size:12px; color:#946c28; border-bottom:1px solid #eaddb9; }
.welcome { display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; background:#F6F3E9; border:1px solid #E4DFD4; border-radius:14px; padding:27px 30px; position:relative; overflow:hidden; gap:20px; }
.welcome::after { content:''; width:180px; height:180px; position:absolute; border:1px solid #E4DFD4; border-radius:50%; right:220px; top:-100px; pointer-events:none; }
.welcome h2 { font-size:25px; color:#433F3F; font-weight:500; letter-spacing:1px; margin:5px 0 8px; }
.welcome p { color:#77736C; font-size:12px; }
.welcome .btn { z-index:1; flex-shrink:0; }
.stat { padding:20px 22px; border:1px solid #E4DFD4; border-radius:12px; box-shadow:0 2px 3px #433F3F03; }
.stat .label { margin-bottom:12px; }
.stat-icon { float:right; color:#8aa18e; font-size:18px; line-height:1; }
.stat .value { font-size:31px; font-weight:500; letter-spacing:-.5px; }
.unit { font-size:11px; color:#9ca696; margin-left:9px; font-weight:400; }
.stat .sub { font-size:10px; margin-top:10px; }
.metrics { gap:18px; margin-bottom:22px; }
.card { border:1px solid #E4DFD4; box-shadow:0 2px 3px #433F3F03; padding:21px 23px; border-radius:12px; }
.card h3 { font-size:14px; margin-bottom:18px; font-weight:600; gap:14px; }
.card h3 a { font-weight:400; font-size:11px; }
.dashboard-panels { gap:20px; }
.workflow { display:flex; justify-content:space-between; gap:12px; padding:13px 0 20px; }
.workflow div { display:flex; flex-direction:column; gap:5px; align-items:center; flex:1; position:relative; }
.workflow div:not(:last-child)::after { content:'→'; position:absolute; right:-13px; top:12px; color:#D6CFC3; font-size:14px; }
.workflow span { width:36px; height:36px; display:grid; place-items:center; border:1px solid #E4DFD4; border-radius:50%; color:#728773; background:#F6F3E9; font-size:10px; }
.workflow b { font-size:12px; font-weight:500; color:#433F3F; }
.workflow small { font-size:9px; color:#9aa493; }
.protection { background:#fbfaf6; }
.protection>div { display:flex; gap:13px; align-items:center; padding:8px 0; }
.protection p { display:flex; flex-direction:column; gap:4px; }
.protection b { font-size:12px; color:#433F3F; font-weight:500; }
.protection small { font-size:10px; color:#77736C; }
.protection-icon { width:34px; height:34px; display:grid; place-items:center; background:#F3EDDA; color:#77736C; border-radius:9px; }
.section-intro { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; gap:20px; }
.section-intro p { font-size:12px; color:#77736C; max-width:850px; }
.section-intro select { padding:8px 12px; border:1px solid #DED8CC; border-radius:8px; background:white; font-size:12px; min-width:120px; }
th { background:#F8F5EC; font-size:10px; color:#8B857B; padding:12px 13px; }
td { font-size:12px; padding:15px 13px; border-bottom:1px solid #EAE4D8; }
td b { font-size:12px; font-weight:500; }
tbody tr:last-child td { border-bottom:none; }
.description { max-width:280px; white-space:normal; overflow-wrap:anywhere; line-height:1.8; }
.tag { font-size:10px; padding:3px 8px; }
.actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.btn { border-radius:7px; font-size:12px; padding:9px 14px; }
.btn-sm { font-size:10px; padding:5px 9px; border-radius:6px; white-space:nowrap; }
.btn-ghost { border-color:#DED8CC; color:#625D55; }
.btn-gold { font-weight:500; background:#FCCF00; }
.btn-primary { background:#433F3F; }
.person { display:flex; align-items:center; gap:11px; }
.avatar { background:#F6F3E9; border:1px solid #e0e7d8; color:#77736C; }
.form-item { margin-bottom:15px; }
.form-row .form-item { margin-bottom:0; }
.form-item label { color:#77736C; }
.form-item input, .form-item select, .form-item textarea { border-color:#DED8CC; border-radius:8px; font-size:12px; padding:11px 12px; }
.form-item textarea { min-height:100px; line-height:1.8; }
.form-item input[type=checkbox] { width:auto; }
.form-item input:focus,.form-item textarea:focus,.form-item select:focus { box-shadow:0 0 0 3px #EFE8D2; }
.modal { width:690px; }
.modal-head { padding:22px 24px; }
.modal-head h3 { font-weight:500; }
.modal-close { font-size:26px; line-height:1; }
.modal-body { padding:24px; }
.modal-foot { padding-top:12px; border-top:1px solid #EAE4D8; }
.safe-note { background:#F7F3E5; border-left-color:#D7BE50; color:#77736C; font-size:11px; margin:14px 0; }
.trace-summary { display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:#F7F3E9; padding:15px; border-radius:8px; margin-bottom:24px; font-size:11px; color:#77736C; }
.timeline { padding-left:0; list-style:none; }
.timeline li { padding-left:26px; padding-bottom:24px; font-size:12px; }
.timeline time { font-size:10px; color:#9B958B; display:block; margin-bottom:6px; }
.timeline p { margin-top:6px; white-space:pre-wrap; color:#625D55; overflow-wrap:anywhere; }
.timeline li::before { background:#CAB557; width:7px; height:7px; }
.long-text { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; line-height:1.9; color:#77736C; margin-bottom:20px; }
.invite-code { background:#FFF7C7; color:#433F3F; text-align:center; font-size:26px; font-weight:600; letter-spacing:3px; padding:24px; border-radius:10px; margin:20px 0; word-break:break-all; }
.record { padding:18px 0; border-bottom:1px solid #EAE4D8; font-size:12px; }
.record:last-child { border-bottom:none; }
.record-head { display:flex; justify-content:space-between; margin-bottom:6px; }
.record p { margin:8px 0; color:#625D55; white-space:pre-wrap; overflow-wrap:anywhere; }
.record dl { display:grid; grid-template-columns:72px 1fr; font-size:11px; margin:12px 0; gap:6px; }
.record dt { color:#9B958B; }
.record dd { color:#625D55; white-space:pre-wrap; overflow-wrap:anywhere; }
.tags { margin-bottom:12px; display:flex; gap:5px; flex-wrap:wrap; }
.settings-layout { grid-template-columns:minmax(400px,1.8fr) minmax(260px,1fr); align-items:start; }
.settings-layout textarea { min-height:140px; }
.readiness-list { list-style:none; margin:16px 0 0; }
.readiness-list li { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid #EAE4D8; font-size:12px; gap:10px; }
.urgent-row td { background:#fff5f0; }
.compact-empty { text-align:center; padding:12px 0; color:#9B958B; font-size:12px; }
.empty { font-size:12px; color:#9B958B; line-height:2; }
.empty h3 { justify-content:center; margin-bottom:4px; }
.empty .btn { margin-top:18px; }
.loading { display:flex; justify-content:center; align-items:center; gap:12px; padding:80px 0; font-size:12px; color:#9B958B; }
.spinner { width:18px; height:18px; border:2px solid #E4DFD4; border-top-color:#B49B32; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to{transform:rotate(360deg);} }
.toast { max-width:420px; line-height:1.7; font-size:12px; }
@media (max-width:1250px) { .sidebar{width:200px;} .view{padding:24px;} .topbar{padding:0 24px;} .dashboard-panels{grid-template-columns:1fr;} .dashboard-panels .card{margin-bottom:0;} .dashboard-panels{margin-bottom:20px;} .settings-layout{grid-template-columns:1fr;} }
@media (max-width:800px) { .sidebar{position:relative;width:100%;height:auto;} .layout{display:block;} .brand{padding:15px 18px;} .brand-mark{width:35px;height:35px;} .brand b{font-size:17px;} .nav-label,.sidebar-foot{display:none;} #nav{display:flex;overflow-x:auto;gap:3px;padding:6px 12px 10px;} #nav a{white-space:nowrap;margin:0;padding:9px 12px;font-size:11px;} #nav a span{display:none;} .topbar{height:70px;padding:0 18px;position:relative;} .topbar .eyebrow{font-size:8px;letter-spacing:1px;} .topbar-actions .muted{display:none;} .topbar-actions{gap:7px;} .view{padding:18px;} .welcome{padding:22px;display:block;} .welcome h2{font-size:20px;} .welcome .btn{margin-top:18px;} .welcome::after{right:-40px;} .metrics{gap:12px;} .stat{padding:16px;} .stat .value{font-size:27px;} .stat .label{font-size:10px;} .stat-icon{display:none;} .stat .sub{font-size:9px;} .grid-2{grid-template-columns:1fr;} .card{padding:17px;} .section-intro{align-items:flex-start;gap:12px;} .section-intro p{font-size:11px;} .section-intro .btn{flex-shrink:0;} .login-mask{padding:24px;gap:0;} .login-story{display:none;} .login-card{max-width:410px;width:100%;padding:36px 26px;} .modal-mask{padding:12px;} .modal-body{padding:18px;} .modal{max-height:94vh;} .modal-head{padding:18px;} .form-row{display:block;} .form-row .form-item{margin-bottom:15px;} .settings-layout{display:block;} .mode-banner{padding:10px 18px;font-size:10px;} .toast-wrap{top:12px;right:12px;left:12px;} .toast{max-width:100%;} }
@media (prefers-reduced-motion:reduce) { *{animation:none!important;transition:none!important;} }
.policy-confirm { display:flex; align-items:flex-start; gap:9px; font-size:11px; line-height:1.9; color:#77736C; padding:12px 0 20px; }
.policy-confirm input { margin-top:4px; flex-shrink:0; }
.mobile-logout { display:none; }
@media (max-width:800px) { .mobile-logout{display:inline-flex;} }

/* 思孟堂正式品牌：明黄 FCCF00 / 深灰 433F3F / 纸色 F6F3E9 */
:root{--brand:#433F3F;--brand-light:#5A5553;--gold:#FCCF00;--bg:#F6F3E9;--text:#433F3F;--text-2:#77736C;--line:#E4DFD4;}
.sidebar{background:#433F3F;width:234px;} .brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:22px 22px 15px;} .brand img{width:152px;height:auto;display:block;} .brand>span{font-size:10px;color:#C5BFB7;letter-spacing:2px;} .brand small{color:#FCCF00;letter-spacing:0;margin-left:8px;} .login-brand-image{width:185px;height:auto;display:block;margin:0 auto 30px;} #nav a.active{background:#FCCF00;color:#433F3F;box-shadow:none;} #nav a.active span{color:#433F3F;} .nav-label{display:none;} .nav-group{font-size:9px;letter-spacing:2px;color:#989087;padding:16px 14px 6px;} #nav a{padding:9px 13px;margin-bottom:2px;} .sidebar-foot{padding:12px 18px;} .sos-banner{background:#4C4745;border-color:#6B625B;color:#C5BFB7;} .sos-banner b{color:#FCCF00;} .sidebar-foot .btn{border-color:#6B625B;color:#E1DBD1;} .login-mask{background:#433F3F;} .login-story .eyebrow{color:#FCCF00;} .login-story h1{color:#FCFAF4;} .login-story p{color:#C4BCB0;} .story-foot{color:#B5AD9E;} .story-flow i{color:#FCCF00;} .login-story::before{border-color:#5F584D;} .login-logo{display:none;} .btn-gold{background:#FCCF00;color:#433F3F;} .btn-primary{background:#433F3F;color:#FFFDF4;} .btn-primary:hover{background:#5A5553;} .welcome{background:#F4ECA9;border-color:#E9DB8E;} .welcome .eyebrow{color:#86762C;} .welcome h2{color:#433F3F;} .welcome p{color:#7B7050;} .welcome::after{border-color:#DFD08E;} .topbar{background:#FFFDF7;} .main-footer{color:#9C958A;} .workbench-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px;} .workbench-card{background:#FFFDF8;border:1px solid #E4DFD4;border-radius:13px;padding:20px 22px;color:#433F3F;transition:transform .15s,border-color .15s;} .workbench-card:hover{border-color:#D0B228;transform:translateY(-2px);} .workbench-card>span{font-size:12px;color:#77736C;display:flex;justify-content:space-between;gap:10px;} .workbench-card>span b{font-size:17px;font-weight:400;color:#AEA393;} .workbench-card strong{font-size:34px;font-weight:500;display:block;line-height:1.5;margin:7px 0;} .workbench-card small{font-size:10px;color:#9B958B;} .dashboard-stats{margin-bottom:6px;} .big-number{font-size:30px;font-weight:500;margin:16px 0;} .big-number small{font-size:10px;font-weight:400;color:#9B958B;margin-left:10px;} .pending-rule-banner{display:flex;align-items:center;gap:15px;flex-wrap:wrap;background:#FFF4BF;border:1px solid #E3CE71;border-radius:10px;padding:17px 20px;margin-bottom:20px;} .pending-rule-banner b{font-size:13px;} .pending-rule-banner span{font-size:11px;color:#87794E;} .pending-rule-banner a{margin-left:auto;font-size:11px;} .money-value{font-size:23px!important;} .finance-filters{align-items:flex-end;margin-bottom:0;} .finance-filters .form-item{min-width:130px;} .finance-filters .btn{margin-bottom:15px;min-height:40px;} .amount{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:#433F3F;} .amount.negative{color:#B86149;} .ledger-choice{width:16px;height:16px;accent-color:#D4B000;} .table-actions{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding-top:20px;} .fee-input{width:145px;max-width:100%;padding:10px 12px;border:1px solid #DED8CC;border-radius:8px;color:#433F3F;background:#FFFDF8;} .fee-preview-explanation{background:#F7F2DA;color:#87794E;font-size:11px;line-height:1.9;padding:14px 16px;border-radius:8px;margin:20px 0;} .cost-preview{font-size:10px;line-height:1.9;color:#8B806A;} .quality-thresholds>.form-row{border-top:1px solid #EAE4D8;padding-top:15px;align-items:center;} .quality-thresholds>.form-row>b{font-size:12px;width:45px;flex-shrink:0;} .quality-thresholds .form-item{min-width:110px;} .star-recognition{font-size:11px;color:#8F7622;background:#FFF3AF;border:1px solid #EEE0A2;border-radius:6px;padding:5px 9px;display:inline-block;} .detail-grid{display:grid;grid-template-columns:100px 1fr;gap:12px;font-size:12px;margin:18px 0;} .detail-grid dt{color:#9B958B;} .private-media{display:block;width:100%;height:auto;max-height:60vh;object-fit:contain;background:#F6F3E9;border-radius:10px;margin-bottom:14px;} .policy-confirm input{accent-color:#D4B000;}
@media(max-width:1300px){.sidebar{width:212px;}.brand img{width:145px;}.workbench-card{padding:17px;}.workbench-card small{line-height:1.8;display:block;}.dashboard-stats{grid-template-columns:1fr;}}
@media(max-width:800px){.sidebar{width:100%;}.brand{flex-direction:row;align-items:center;justify-content:space-between;padding:16px 18px 12px;}.brand img{width:125px;}.brand>span{font-size:9px;}.nav-group{display:none;}.workbench-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;}.workbench-card{padding:15px;}.workbench-card strong{font-size:28px;}.workbench-card>span{font-size:10px;}.workbench-card small{font-size:9px;}.finance-filters .btn{margin-bottom:0;}.quality-thresholds .form-row{display:flex;}.quality-thresholds .form-item{min-width:105px;}.pending-rule-banner a{margin-left:0;}.login-brand-image{width:170px;}}
/* V4 家庭活动：编辑、实名边界、现场核验与行为成长。 */
.activity-wide-modal{width:1000px;max-height:94vh;}
.activity-editor>section{border-bottom:1px solid #E7E0D1;padding:4px 0 22px;margin-bottom:22px;}
.activity-editor h4{font-size:14px;margin:8px 0 18px;color:#433F3F;}
.activity-ticket-row,.activity-question-row{background:#FAF7ED;border:1px solid #E4DDCA;border-radius:10px;padding:18px;margin-bottom:15px;}
.activity-ticket-row>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:12px;}
.activity-question-row .policy-confirm,.activity-ticket-row .policy-confirm{padding:8px 0 15px;}
.level-options{display:flex;gap:15px;flex-wrap:wrap;color:#77736C;font-size:11px;}
.level-options label{display:flex;gap:6px;align-items:center;}
.level-options input{width:auto;accent-color:#D0B000;}
.file-field{display:block;border:1px dashed #D9CA99;padding:13px 16px;border-radius:8px;font-size:12px;color:#77736C;margin-bottom:12px;}
.file-field input{display:block;width:100%;margin-top:10px;font-size:11px;}
#activity-cover-preview img{width:260px;height:auto;max-height:180px;object-fit:contain;display:block;background:#F6F3E9;border-radius:8px;margin:14px 0;}
.publish-checks{padding-left:20px;font-size:12px;line-height:2.1;color:#77736C;}
.activity-entry-strip{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#FFF9DC;border:1px solid #E6DFAE;border-radius:11px;padding:17px 21px;margin-bottom:20px;}
.activity-entry-strip>div{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.activity-entry-strip b{font-size:13px;color:#433F3F;font-weight:500;}
.activity-entry-strip span{font-size:11px;color:#98895F;}
.level-rule-mark{width:35px;flex-shrink:0;font-size:12px;color:#91814A;}
.participant-field-settings{padding:5px 0 15px;}
.participant-field-settings .policy-confirm{padding:6px 0;}
@media(max-width:800px){.activity-ticket-row,.activity-question-row{padding:14px;}.activity-wide-modal{width:100%;}.activity-entry-strip{display:block;padding:16px;}.activity-entry-strip .btn{margin-top:13px;}.activity-editor .form-row{display:block;}.level-options{gap:12px;}#activity-cover-preview img{max-width:100%;}}
.exclusive-prices-section{padding:14px 0 5px;border-top:1px dashed #DCD2B9;border-bottom:1px dashed #DCD2B9;margin:16px 0;}
.activity-exclusive-row{align-items:flex-end;background:#FFFDF6;padding:13px;border-radius:8px;border:1px solid #E9E1CA;}
.activity-exclusive-row .form-item{min-width:125px;}
.activity-exclusive-row>.btn{margin-bottom:0;min-height:38px;}
@media(max-width:800px){.activity-exclusive-row>.btn{margin:8px 0 0;}}

/* V5 可编辑课程与权限 */
[hidden]{display:none!important}.v5-editor-row{border:1px solid var(--line,#e5e1d7);padding:18px;border-radius:14px;margin:14px 0;background:#faf9f5}.v5-qr{text-align:center;margin:20px auto;max-width:320px}.v5-qr svg{width:100%;height:auto}.invite-code{overflow-wrap:anywhere}.course-class,.course-plan{background:#fff}#identity-preview:empty{display:none}
.activity-editor-guide{background:#fff7d3;border-radius:14px;padding:16px;margin-bottom:18px}.activity-editor-guide p{line-height:1.8;color:#80735a;font-size:13px}.draft-preview{padding:18px;border:1px solid #e8ddb6;border-radius:16px;background:#fffdf4;margin-bottom:16px}.draft-preview p{overflow-wrap:anywhere;line-height:1.7}.v5-editor-row .form-row>*{min-width:0}
