/* 主角说运营后台：独立、清晰的桌面运营工作区，移动端折叠成横向栏目导航。 */
body.admin-body { padding:0 !important; background:#f7f5f8 !important; color:#362d36; }
.app-shell.admin-layout { width:100%; max-width:none; min-height:100vh; margin:0; overflow:visible; border-radius:0; background:#f7f5f8; box-shadow:none; }
.admin-page { --admin-ink:#352d36; --admin-muted:#8b818d; --admin-line:#eee7ed; --admin-pink:#df5d83; --admin-pink-soft:#fff0f5; --admin-bg:#f7f5f8; --admin-surface:#fff; min-height:100vh; display:flex; background:var(--admin-bg); color:var(--admin-ink); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
.admin-page * { box-sizing:border-box; }
.admin-sidebar { position:fixed; z-index:80; inset:0 auto 0 0; width:244px; display:flex; flex-direction:column; padding:24px 14px 18px; background:#fff; border-right:1px solid #eee7ed; }
.admin-brand { width:100%; min-height:58px; display:flex; align-items:center; gap:11px; padding:7px 10px; border:0; border-radius:15px; background:transparent; text-align:left; color:var(--admin-ink); }
.admin-brand-mark { width:40px; height:40px; flex:0 0 auto; display:grid; place-items:center; border-radius:14px; background:linear-gradient(145deg,#ffe3ed,#f8b3ca); box-shadow:0 6px 14px rgba(219,91,129,.15); color:#c93f6c; font-size:23px; }
.admin-brand>span:last-child,.admin-header-brand>span:last-child { display:grid; gap:2px; }
.admin-brand strong,.admin-header-brand strong { font-family:"Songti SC","STSong",serif; font-size:19px; letter-spacing:.04em; color:#c74770; }
.admin-brand small,.admin-header-brand small { color:#9d8993; font-size:10px; letter-spacing:.1em; }
.admin-sidebar-label { margin:26px 12px 9px; color:#b2a5ae; font-size:10px; font-weight:800; letter-spacing:.16em; }
.admin-sidebar-nav { display:grid; gap:5px; }
.admin-nav-button { position:relative; width:100%; min-height:45px; display:flex; align-items:center; gap:12px; padding:0 12px; border:0; border-radius:12px; background:transparent; color:#817781; text-align:left; transition:background .18s,color .18s; }
.admin-nav-button>span { width:19px; height:19px; flex:0 0 auto; display:grid; place-items:center; }
.admin-nav-button svg { width:18px; height:18px; }
.admin-nav-button b { font-size:13px; font-weight:650; }
.admin-nav-button:hover { background:#faf6f8; color:#bd5273; }
.admin-nav-button.is-active { background:#fff0f5; color:#ce4771; }
.admin-nav-marker { position:absolute; right:10px; width:6px; height:6px; border-radius:50%; background:#e66088; }
.admin-sidebar-bottom { margin-top:auto; display:flex; align-items:center; gap:10px; padding:14px 9px 2px; border-top:1px solid #f1ebef; }
.admin-secure-mark { width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:#eff8f2; color:#5b9b73; font-size:13px; font-weight:800; }
.admin-sidebar-bottom strong,.admin-sidebar-bottom small { display:block; }
.admin-sidebar-bottom strong { font-size:11px; }
.admin-sidebar-bottom small { margin-top:3px; color:var(--admin-muted); font-size:10px; }
.admin-main { min-width:0; width:calc(100% - 244px); margin-left:244px; }
.admin-header { position:sticky; z-index:60; top:0; min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:0 clamp(24px,4vw,58px); border-bottom:1px solid #eee7ed; background:rgba(255,255,255,.92); backdrop-filter:blur(18px); }
.admin-header-brand { display:none; align-items:center; gap:9px; }
.admin-header-brand .admin-brand-mark { width:34px; height:34px; border-radius:11px; font-size:20px; }
.admin-header-brand strong { font-size:16px; }
.admin-header-brand small { font-size:8px; }
.admin-header-actions { display:flex; align-items:center; gap:9px; margin-left:auto; }
.admin-date-chip { padding:8px 12px; border:1px solid #efe7ed; border-radius:999px; background:#fff; color:#8d808c; font-size:12px; }
.admin-quiet-button,.admin-logout-button { min-height:38px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 14px; border:1px solid #eee5eb; border-radius:11px; background:#fff; color:#655963; font-size:12px; font-weight:700; }
.admin-quiet-button svg { width:14px; height:14px; }
.admin-logout-button { border-color:#f4dfe7; background:#fff6f8; color:#cb5077; }
.admin-content { width:min(100%,1420px); margin:0 auto; padding:32px clamp(24px,4vw,58px) 42px; }
.admin-welcome { min-height:118px; display:flex; align-items:center; justify-content:space-between; gap:22px; scroll-margin-top:94px; }
.admin-eyebrow,.admin-section-heading>div>span { margin:0; color:#c67a94; font-size:10px; font-weight:800; letter-spacing:.16em; }
.admin-welcome h1 { margin:8px 0 5px; color:#352d36; font-family:"Songti SC","STSong",serif; font-size:30px; font-weight:700; letter-spacing:.02em; }
.admin-welcome p:last-child { margin:0; color:#938692; font-size:13px; }
.admin-welcome-stamp { min-width:164px; padding:12px 16px; border:1px solid #f2e4e9; border-radius:17px; background:linear-gradient(140deg,#fff,#fff4f7); box-shadow:0 7px 22px rgba(182,88,119,.05); }
.admin-welcome-stamp>span:first-child { display:block; color:#968794; font-size:11px; }
.admin-welcome-stamp>strong { display:block; margin-top:3px; color:#c74872; font-size:27px; line-height:1.1; }
.admin-welcome-stamp>strong small { margin-left:5px; color:#9a8791; font-size:11px; font-weight:600; }
.admin-today-indicator { display:flex; align-items:center; gap:5px; margin-top:7px; color:#8c8790; font-size:10px; }
.admin-today-indicator i { width:6px; height:6px; border-radius:50%; background:#64b482; }
.admin-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:21px; }
.admin-metric-card { min-height:137px; padding:17px 18px; border:1px solid #eee7ed; border-radius:17px; background:var(--admin-surface); box-shadow:0 6px 18px rgba(61,37,55,.025); }
.admin-metric-top { display:flex; align-items:center; justify-content:space-between; }
.admin-metric-icon { width:33px; height:33px; display:grid; place-items:center; border-radius:11px; }
.admin-metric-icon svg { width:17px; height:17px; }
.admin-metric-icon.pink { background:#fff0f5; color:#d75880; }
.admin-metric-icon.peach { background:#fff3ea; color:#d98b57; }
.admin-metric-icon.violet { background:#f3efff; color:#8971c2; }
.admin-metric-icon.green { background:#edf7f1; color:#5c9d78; }
.admin-metric-note { color:#968b97; font-size:10px; }
.admin-metric-label { display:block; margin-top:13px; color:#887c88; font-size:12px; }
.admin-metric-card>strong { display:block; margin-top:3px; color:#382f39; font-size:27px; line-height:1.15; font-weight:750; font-variant-numeric:tabular-nums; }
.admin-overview-grid { display:grid; grid-template-columns:minmax(0,1.23fr) minmax(340px,.92fr); gap:15px; margin-top:16px; }
.admin-card { min-width:0; padding:20px; border:1px solid #eee7ed; border-radius:18px; background:#fff; box-shadow:0 6px 20px rgba(61,37,55,.025); scroll-margin-top:94px; }
.admin-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.admin-section-heading h2 { margin:4px 0 0; color:#372f38; font-family:"Songti SC","STSong",serif; font-size:18px; letter-spacing:.01em; }
.admin-card-caption,.admin-count-label { color:#918691; font-size:11px; white-space:nowrap; }
.admin-count-label { padding:5px 9px; border:1px solid #f1e9ee; border-radius:999px; background:#fcfafb; }
.admin-event-list { display:grid; gap:14px; }
.admin-event-row { display:flex; align-items:center; gap:10px; }
.admin-event-icon { width:31px; height:31px; flex:0 0 auto; display:grid; place-items:center; border:1px solid #f2e7ec; border-radius:10px; background:#fff7fa; color:#d16a8c; }
.admin-event-icon svg { width:15px; height:15px; }
.admin-event-copy { min-width:0; flex:1; }
.admin-event-copy>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.admin-event-copy strong { color:#716672; font-size:12px; font-weight:600; }
.admin-event-copy b { color:#403842; font-size:13px; font-variant-numeric:tabular-nums; }
.admin-event-track { height:5px; overflow:hidden; margin-top:6px; border-radius:99px; background:#f5edf1; }
.admin-event-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#f09bb5,#dc5c82); }
.admin-service-list { display:grid; grid-template-columns:minmax(0,1fr); min-width:0; }
.admin-service-row { min-width:0; display:flex; align-items:flex-start; gap:10px; padding:11px 0; border-top:1px solid #f3edf1; }
.admin-service-row:first-child { padding-top:0; border-top:0; }
.admin-service-icon { width:30px; height:30px; flex:0 0 auto; display:grid; place-items:center; border-radius:10px; background:#f7f2f5; color:#bd7890; }
.admin-service-icon svg { width:16px; height:16px; }
.admin-service-copy { min-width:0; flex:1; }
.admin-service-copy>div { display:flex; align-items:center; justify-content:space-between; gap:7px; }
.admin-service-copy>div>strong { color:#514650; font-size:12px; }
.admin-service-copy>small { display:block; overflow:hidden; margin-top:4px; color:#766a76; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.admin-service-copy>p { overflow:hidden; margin:3px 0 0; color:#8f8490; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.admin-status { display:inline-flex; align-items:center; gap:5px; max-width:max-content; padding:4px 7px; border-radius:999px; font-size:10px; font-weight:700; white-space:nowrap; }
.admin-status i { width:5px; height:5px; flex:0 0 auto; border-radius:50%; background:currentColor; }
.admin-status.success { background:#edf7f0; color:#538d67; }
.admin-status.info { background:#eff5fc; color:#6588b2; }
.admin-status.warning { background:#fff6e8; color:#b17d38; }
.admin-status.danger { background:#fff0ef; color:#c05e57; }
.admin-status.muted { background:#f3f0f3; color:#8f8490; }
.admin-records-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.admin-table-scroll { width:100%; overflow-x:auto; scrollbar-width:thin; scrollbar-color:#e7dbe2 transparent; }
.admin-table { width:100%; min-width:510px; border-collapse:collapse; font-size:12px; text-align:left; }
.admin-table th { padding:0 11px 10px; border-bottom:1px solid #eee8ed; color:#857a87; font-size:10px; font-weight:700; white-space:nowrap; }
.admin-table td { padding:11px; border-bottom:1px solid #f3edf1; color:#716773; vertical-align:middle; white-space:nowrap; }
.admin-table tbody tr:last-child td { border-bottom:0; }
.admin-table tbody tr:hover { background:#fffafd; }
.admin-table td strong { color:#4a404b; font-size:11px; font-weight:700; }
.admin-soft-label { display:inline-flex; max-width:176px; overflow:hidden; padding:5px 8px; border:1px solid #f0e8ed; border-radius:8px; background:#fbf9fb; color:#766a76; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.admin-empty { min-height:112px; display:grid; align-content:center; justify-items:center; gap:5px; padding:15px; border:1px dashed #eee2e9; border-radius:13px; background:#fdfbfc; text-align:center; }
.admin-empty>span { color:#df8aa4; font-size:20px; }
.admin-empty>strong { color:#665b67; font-size:12px; }
.admin-empty>small { color:#8f8490; font-size:10px; }
.admin-management-card { margin-top:16px; }
.admin-template-name { display:flex; align-items:center; gap:9px; }
.admin-template-icon { width:29px; height:29px; display:grid; place-items:center; border-radius:9px; background:#fff2f6; color:#d36a8b; }
.admin-template-icon svg { width:15px; height:15px; }
.admin-toggle { min-height:30px; display:inline-flex; align-items:center; gap:6px; padding:0 10px; border:1px solid #eee7ed; border-radius:999px; background:#f7f5f7; color:#817684; font-size:10px; font-weight:700; }
.admin-toggle i { width:6px; height:6px; border-radius:50%; background:#b5abb5; }
.admin-toggle.is-on { border-color:#d9eee0; background:#eff8f2; color:#568967; }
.admin-toggle.is-on i { background:#64a879; }
.admin-feature-toggle { min-height:31px; display:inline-flex; align-items:center; gap:5px; padding:0 10px; border:1px solid #efe8ed; border-radius:9px; background:#fff; color:#796e7b; font-size:10px; font-weight:700; }
.admin-feature-toggle svg { width:13px; height:13px; }
.admin-feature-toggle.is-on { border-color:#f5d6e0; background:#fff5f8; color:#ce5a7e; }
.admin-plan-name { display:grid; grid-template-columns:auto auto; align-items:center; justify-content:start; gap:3px 7px; }
.admin-plan-name small { grid-column:1/-1; color:#887d89; font-size:10px; }
.admin-plan-recommended { padding:3px 6px; border-radius:999px; background:#fff0f5; color:#ca567a; font-size:9px; font-weight:700; }
.admin-inline-input { min-height:34px; display:inline-flex; align-items:center; gap:5px; padding:0 8px; border:1px solid #ebe4eb; border-radius:9px; background:#fff; color:#8c808b; font-size:10px; }
.admin-inline-input:focus-within { border-color:#e083a0; box-shadow:0 0 0 3px rgba(219,91,129,.1); }
.admin-inline-input input { width:66px; min-height:30px; padding:0; border:0; outline:0; background:transparent; color:#403742; font-size:11px; font-weight:700; font-variant-numeric:tabular-nums; }
.admin-credit-input input { width:52px; }
.admin-plan-actions { display:flex; align-items:center; gap:6px; }
.admin-save-button { min-height:32px; padding:0 12px; border:0; border-radius:9px; background:linear-gradient(100deg,#e66d90,#d94e78); color:#fff; font-size:10px; font-weight:800; box-shadow:0 4px 10px rgba(218,80,120,.14); }
.admin-user-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.admin-user-card { min-width:0; padding:13px; border:1px solid #f0e9ee; border-radius:14px; background:linear-gradient(150deg,#fff,#fffafd); }
.admin-user-heading { display:flex; align-items:center; gap:8px; }
.admin-user-avatar { width:32px; height:32px; flex:0 0 auto; display:grid; place-items:center; border-radius:11px; background:#fff0f5; color:#d35e84; font-size:13px; font-weight:800; }
.admin-user-heading>div { min-width:0; flex:1; }
.admin-user-heading>div strong,.admin-user-heading>div small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-user-heading>div strong { color:#4b414d; font-size:11px; }
.admin-user-heading>div small { margin-top:3px; color:#887d89; font-size:9px; }
.admin-user-credit { color:#a7647b; font-size:12px; font-weight:800; white-space:nowrap; }
.admin-user-credit small { margin-left:3px; color:#897e8a; font-size:9px; font-weight:600; }
.admin-user-detail { display:flex; align-items:center; justify-content:space-between; margin-top:12px; padding:8px 0; border-top:1px solid #f2ecf0; color:#817684; font-size:10px; }
.admin-user-detail strong { color:#514651; font-size:11px; }
.admin-user-control-label { margin-bottom:7px; color:#877c88; font-size:9px; }
.admin-quota-actions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
.admin-quota-button { min-height:31px; border:1px solid #eee7ed; border-radius:8px; background:#fff; color:#796e7b; font-size:10px; font-weight:700; }
.admin-quota-button.is-active { border-color:#e28aa5; background:#fff1f5; color:#c84e76; }
.admin-footer { display:flex; justify-content:space-between; gap:12px; padding:20px 3px 0; color:#aaa0aa; font-size:9px; }
.admin-state-page { min-height:100vh; display:grid; place-items:center; padding:20px; background:radial-gradient(circle at 50% 8%,#fff0f5,#f7f5f8 55%); }
.admin-state-card { width:min(100%,420px); padding:36px 30px; border:1px solid #eee6ec; border-radius:22px; background:#fff; box-shadow:0 20px 55px rgba(90,47,69,.09); text-align:center; }
.admin-state-icon { width:52px; height:52px; display:grid; place-items:center; margin:0 auto 15px; border-radius:17px; background:#fff0f5; color:#d4527a; font-size:25px; }
.admin-loading-mark { animation:admin-soft-pulse 1.2s ease-in-out infinite alternate; }
@keyframes admin-soft-pulse { to { transform:scale(.92); opacity:.65; } }
.admin-state-card .admin-kicker { margin:0; color:#c67a94; font-size:9px; font-weight:800; letter-spacing:.17em; }
.admin-state-card h1 { margin:9px 0; color:#3e343f; font-family:"Songti SC","STSong",serif; font-size:22px; }
.admin-state-card>p:not(.admin-kicker) { margin:0; color:#928692; font-size:12px; line-height:1.7; }
.admin-primary-button { min-height:43px; margin-top:18px; padding:0 22px; border:0; border-radius:12px; background:linear-gradient(100deg,#e66d90,#d94e78); color:#fff; font-size:12px; font-weight:800; }

@media (max-width:1100px) and (min-width:768px) {
  .admin-sidebar { width:210px; }
  .admin-main { width:calc(100% - 210px); margin-left:210px; }
  .admin-content { padding-right:24px; padding-left:24px; }
  .admin-header { padding-right:24px; padding-left:24px; }
  .admin-overview-grid { grid-template-columns:minmax(0,1fr) minmax(300px,.86fr); }
  .admin-user-list { grid-template-columns:1fr; }
}
@media (max-width:767px) {
  body.admin-body { padding:0 !important; }
  .app-shell.admin-layout { width:100%; max-width:none; min-height:100vh; margin:0; overflow:visible; border-radius:0; }
  .admin-page { display:block; }
  .admin-sidebar { position:sticky; top:0; z-index:100; width:100%; height:auto; display:block; padding:0 12px; border-right:0; border-bottom:1px solid #eee7ed; box-shadow:0 4px 14px rgba(61,37,55,.035); }
  .admin-sidebar::after { content:'›'; position:absolute; top:8px; right:2px; width:24px; height:37px; display:grid; place-items:center; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,0),#fff 42%); color:#c96886; font-size:18px; }
  .admin-brand,.admin-sidebar-label,.admin-sidebar-bottom { display:none; }
  .admin-sidebar-nav { display:flex; gap:5px; overflow-x:auto; padding:8px 0; scrollbar-width:none; }
  .admin-sidebar-nav::-webkit-scrollbar { display:none; }
  .admin-nav-button { width:auto; min-height:35px; flex:0 0 auto; gap:6px; padding:0 10px; border-radius:10px; }
  .admin-nav-button>span { width:15px; height:15px; }
  .admin-nav-button svg { width:15px; height:15px; }
  .admin-nav-button b { font-size:11px; }
  .admin-nav-marker { display:none; }
  .admin-main { width:100%; margin:0; }
  .admin-header { position:relative; min-height:64px; gap:8px; padding:0 14px; }
  .admin-header-brand { display:flex; }
  .admin-date-chip { display:none; }
  .admin-quiet-button,.admin-logout-button { min-height:35px; padding:0 10px; font-size:10px; }
  .admin-content { width:100%; padding:18px 14px 30px; }
  .admin-welcome { min-height:98px; gap:9px; }
  .admin-welcome h1 { margin-top:6px; font-size:24px; }
  .admin-welcome p:last-child { max-width:210px; font-size:11px; line-height:1.5; }
  .admin-eyebrow { font-size:8px; letter-spacing:.12em; }
  .admin-welcome-stamp { min-width:112px; padding:10px 11px; border-radius:14px; }
  .admin-welcome-stamp>strong { font-size:24px; }
  .admin-today-indicator { font-size:9px; }
  .admin-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
  .admin-metric-card { min-height:105px; padding:12px; border-radius:14px; }
  .admin-metric-icon { width:29px; height:29px; border-radius:9px; }
  .admin-metric-icon svg { width:15px; height:15px; }
  .admin-metric-note { max-width:68px; overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
  .admin-metric-label { margin-top:8px; font-size:10px; }
  .admin-metric-card>strong { margin-top:3px; font-size:22px; }
  .admin-overview-grid,.admin-records-grid,.admin-lower-grid { grid-template-columns:minmax(0,1fr); gap:10px; margin-top:10px; }
  .admin-card { padding:14px 12px; border-radius:15px; scroll-margin-top:57px; }
  .admin-section-heading { margin-bottom:12px; }
  .admin-section-heading h2 { font-size:16px; }
  .admin-section-heading>div>span { font-size:8px; }
  .admin-card-caption,.admin-count-label { font-size:9px; }
  .admin-event-list { gap:12px; }
  .admin-event-icon { width:28px; height:28px; }
  .admin-service-row { gap:8px; padding:10px 0; }
  .admin-service-copy>div>strong { font-size:11px; }
  .admin-service-copy>small,.admin-service-copy>p { font-size:9px; }
  .admin-status { padding:4px 6px; font-size:9px; }
  .admin-table { min-width:520px; font-size:11px; }
  .admin-table th { padding:0 9px 9px; font-size:9px; }
  .admin-table td { padding:10px 9px; }
  .admin-user-list { grid-template-columns:1fr; }
  .admin-user-card { padding:12px; }
  .admin-footer { flex-direction:column; gap:4px; padding-top:17px; font-size:9px; }
  .admin-state-page { min-height:calc(100vh - 80px); }
}
