/* 工作台视觉与排班助手，沿用现有基础组件。 */
:root {
  --bg: #f3f6f5;
  --ink: #1c322a;
  --muted: #657a70;
  --line: #e1e9e4;
  --green: #138164;
  --green-dark: #0e664f;
  --green-light: #e9f6ef;
  --radius: 13px;
}

.sidebar {
  width: 222px;
  padding: 22px 14px 16px;
  background: #102f27;
  border-color: #193d31;
  color: #e8f3ec;
  scrollbar-width: thin;
  scrollbar-color: #3a5d50 transparent;
}
.sidebar .brand { display: flex; align-items: center; border-color: #ffffff15; margin: 0 0 15px; padding: 0 6px 17px; gap: 11px; }
.sidebar .brand-mark { flex: none; width: 44px; height: 44px; border-radius: 11px; overflow: hidden; }
.sidebar .brand-mark img { display: block; width: 100%; height: 100%; }
.sidebar .brand-name { color: #f4faf6; font-size: 21px; line-height: 1.15; letter-spacing: .8px; }
.sidebar .brand-sub { color: #a9c3b5; font-size: 10px; margin-top: 5px; }
.side-workspace {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 1px 6px;
  padding: 10px;
  border: 1px solid #ffffff15;
  border-radius: 9px;
  background: #ffffff09;
}
.side-workspace-icon { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 7px; background: #ffffff14; color: #a7e3c6; }
.side-workspace-icon .ico { width: 17px; height: 17px; }
.side-workspace strong { display: block; font-size: 11px; }
.side-workspace small { display: block; margin-top: 3px; color: #a1b8ad; font-size: 10px; }
.sidebar .nav-label { color: #91b3a4; font-size: 10px; padding: 12px 10px 4px; }
.sidebar .nav-item { color: #ccded4; padding: 9px 10px; border-radius: 7px; }
.sidebar .nav-item:hover { background: #ffffff11; color: #fff; }
.sidebar .nav-item.active { background: #245343; color: #ecfff4; box-shadow: inset 3px 0 #83d8ad; }
.sidebar .nav-item.active .ico { color: #9ee5c0; }
.sidebar-foot { color: #a0b8ab; border-color: #ffffff1e; }
.sidebar-foot .who-name { color: #f0f8f3; font-weight: 600; }
.sidebar-foot .btn { color: #d4e6dc; border-color: #ffffff25; background: #ffffff0a; }
.sidebar-foot .btn:hover { color: #fff; background: #ffffff16; }
.main-shell { margin-left: 222px; }
.topbar { height: 61px; padding: 0 26px; background: #fffffff2; }
.topbar .crumb { color: #667b70; }
.topbar .crumb b { color: #264137; }
.mobile-nav { display: none; }
.mobile-nav .ico { width: 18px; height: 18px; }
main { width: 100%; max-width: 1820px; margin: 0 auto; }

.schedule-hero {
  display: flex;
  position: relative;
  isolation: isolate;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  overflow: hidden;
  min-height: 146px;
  margin-bottom: 16px;
  padding: 24px 27px;
  border: 1px solid #2d6954;
  border-radius: 15px;
  background: linear-gradient(112deg, #173e32 10%, #165b48 100%);
  color: #f2fbf6;
}
.schedule-hero::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0 0 0 37%;
  background: repeating-linear-gradient(90deg, transparent 0 39px, #ffffff0d 39px 40px),
    repeating-linear-gradient(0deg, transparent 0 31px, #ffffff0b 31px 32px),
    radial-gradient(ellipse at 95% 100%, #7bd7ad2a, transparent 70%);
  mask-image: linear-gradient(90deg, transparent, #000 40%);
  pointer-events: none;
}
.hero-label { display: flex; align-items: center; gap: 8px; color: #aed9c6; font-size: 11px; letter-spacing: .7px; }
.hero-label span { width: 6px; height: 6px; border-radius: 50%; background: #94e9bd; box-shadow: 0 0 0 4px #94e9bd19; }
.hero-content h1 { font-size: 29px; letter-spacing: .2px; margin-top: 9px; }
.hero-content p { font-size: 12px; color: #c8e0d4; margin-top: 9px; line-height: 1.65; }
.hero-actions { display: flex; gap: 8px; flex-wrap: wrap; flex-shrink: 0; align-items: center; }
.hero-actions .btn { min-height: 38px; padding: 9px 13px; font-size: 12px; }
.hero-actions .hero-quiet { color: #eef7f2; background: #ffffff10; border-color: #ffffff30; }
.hero-actions .hero-quiet:hover { background: #ffffff20; border-color: #ffffff55; }
.hero-actions .hero-smart { color: #133e2d; background: #a8ecc8; border-color: #a8ecc8; font-weight: 700; }
.hero-actions .hero-smart:hover { background: #c5f5d9; border-color: #c5f5d9; }
.hero-actions .ico, .schedule-panel-title .ico, .date-label .ico, .sched-search .ico, .btn-suggest .ico { width: 16px; height: 16px; flex: none; }

.schedule-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-bottom: 18px; }
.schedule-stat { padding: 13px 16px 14px; background: #fff; border: 1px solid var(--line); border-radius: 11px; }
.stat-label { display: flex; align-items: center; justify-content: space-between; gap: 6px; color: #566f63; font-size: 12px; }
.stat-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; }
.stat-icon .ico { width: 17px; height: 17px; }
.stat-icon.mint { background: #e8f6ed; color: #278467; }
.stat-icon.blue { background: #eaf2fd; color: #437ab4; }
.stat-icon.lilac { background: #f2ebf9; color: #7d61a2; }
.stat-icon.amber { background: #fff3e0; color: #9b7427; }
.stat-value { font-variant-numeric: tabular-nums; font-size: 27px; line-height: 1.45; font-weight: 680; }
.stat-value small { font-size: 11px; font-weight: 400; color: #6d8276; margin-left: 6px; }
.schedule-stat p { font-size: 11px; line-height: 1.6; color: #6b8074; }

.schedule-panel { border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }
.schedule-panel-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 17px 19px 15px; }
.schedule-panel-title h2 { font-size: 16px; font-weight: 650; }
.schedule-panel-title p { font-size: 11px; color: var(--muted); margin-top: 6px; line-height: 1.6; }
.schedule-panel-title .btn { flex: none; }
.schedule-panel .sched-bar { padding: 0 19px; margin-bottom: 11px; }
.schedule-panel .date-nav { padding: 3px 5px; gap: 3px; }
.schedule-panel .icon-btn { font-size: 19px; width: 28px; height: 30px; line-height: 1; color: #547065; }
.schedule-panel .date-label { position: relative; gap: 7px; padding: 5px 7px; cursor: pointer; }
.date-label .ico, .sched-search .ico { color: #718c7d; }
.date-label input { position: absolute; inset: 0; width: 100%; min-height: 0; opacity: 0; cursor: pointer; }
.date-label input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }
.today-btn { margin-left: 5px; }
.sched-search { display: flex; align-items: center; min-width: 170px; gap: 7px; border: 1px solid var(--line); border-radius: 8px; padding: 0 9px; }
.sched-search input { border: 0; background: none; box-shadow: none; outline: none; padding-left: 0; }
.sched-search:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px #16836712; }
.schedule-panel .filter-row { padding: 0 19px 11px; margin: 0; }
.schedule-panel .chip-filter { border-radius: 6px; font-size: 11px; }
.band-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 9px 19px; border-top: 1px solid #edf2ef; color: #72867b; font-size: 11px; }
.band-row .legend { flex-wrap: wrap; }
.band-row .lg { padding: 4px 8px; font-size: 11px; }
.band-row .lg.active { background: #edf4ef; color: #2b604a; }
.schedule-panel #schedBody { border-top: 1px solid var(--line); }
.tl-scroll, .schedule-list { overflow-x: auto; scrollbar-width: thin; scrollbar-color: #becfc3 transparent; }
.schedule-panel .tl { min-width: 1040px; border: 0; border-radius: 0; overflow: visible; }
.schedule-panel .tl-head, .schedule-panel .tl-row { grid-template-columns: 182px minmax(0, 1fr); }
.schedule-panel .tl-corner, .schedule-panel .tl-room { position: sticky; left: 0; z-index: 4; box-shadow: 5px 0 9px -8px #314d3e55; }
.schedule-panel .tl-head, .schedule-panel .tl-corner { background: #f4f8f5; }
.schedule-panel .tl-corner { font-size: 11px; font-weight: 600; }
.schedule-panel .tl-room { background: #fff; padding: 11px 12px; }
.tl-room .room-avatar { width: 31px; height: 31px; background: #e8f4ed; }
.tl-room .rn { font-size: 12px; color: #29483a; }
.tl-room .rb { font-size: 10px; }
.schedule-panel .tl-hour { font-size: 9px; padding: 10px 0 10px 4px; color: #71877a; }
.schedule-panel .tl-hour.major { font-weight: 650; color: #3e6653; }
.schedule-panel .tl-row { border-color: #edf2ef; }
.schedule-panel .tl-track { height: 58px; }
.schedule-panel .tl-track-role, .tl-track-role { height: 17px; }
.tl-room-group { display: flex; align-items: stretch; }
.tl-room-group > .tl-room {
  width: 182px; flex: 0 0 182px; padding: 7px 9px !important;
  display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 8px;
  overflow: hidden;
}
.tl-room-group > .tl-room .room-avatar { width: 24px; height: 24px; flex: none; }
.tl-room-group > .tl-room .rn { font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl-room-group > .tl-room .rb { font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl-lanes { align-self: flex-start; }
.schedule-panel .tl-cell.major { border-color: #e1eae4; }
.schedule-panel .blk { top: 8px; bottom: 8px; padding: 5px 6px; border-radius: 7px; gap: 6px; }
.schedule-panel .blk-av { width: 27px; height: 27px; font-size: 11px; box-shadow: none; border-width: 1px; }
.schedule-panel .blk-name { font-size: 12px; line-height: 1.4; }
.schedule-panel .blk-meta { gap: 4px; margin-top: 3px; font-size: 9px; }
.schedule-panel .blk-roles { gap: 3px; margin-top: 2px; opacity: 1; }
.schedule-panel .role-tag { margin-left: 0; padding: 0 3px; font-size: 8.5px; line-height: 12px; }
.schedule-panel .blk-compact { min-width: 13px; }
.schedule-panel .blk-compact .blk-av, .schedule-panel .blk-compact .blk-type, .schedule-panel .blk-compact .blk-roles { display: none; }
.tl-now { position: absolute; top: 0; bottom: 0; z-index: 3; width: 1px; background: #26856888; pointer-events: none; }
.tl-idle { position: absolute; inset: 0; display: grid; place-items: center; font-size: 10px; color: #9aac9e; pointer-events: none; }
.schedule-panel .sched, .schedule-panel .schedule-list { border: 0; border-radius: 0; }
.schedule-panel .schedule-list table { min-width: 750px; }
.schedule-panel .sched-head .cell:first-child, .schedule-panel .sched-row .room { position: sticky; left: 0; z-index: 2; background: #f8faf8; }

.modal { max-height: min(92vh, 92dvh); }
.modal.wide { max-width: 900px; }
.modal-head h3 { font-size: 16px; }
.modal-body { line-height: 1.55; }
.modal-foot { flex-wrap: wrap; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.plan-intro, .check-summary { padding: 14px; margin-bottom: 15px; border-radius: 9px; border: 1px solid #dbece2; background: #f0f8f3; }
.plan-intro { display: flex; align-items: center; gap: 12px; }
.plan-symbol { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 9px; background: #dcefe3; color: #19785d; flex: none; }
.plan-symbol .ico { width: 19px; height: 19px; }
.plan-intro strong, .check-summary strong { color: #235840; font-size: 13px; }
.plan-intro p, .check-summary p { color: #587467; font-size: 11px; margin-top: 4px; }
.plan-form { gap: 11px 14px; }
.plan-results { margin-top: 15px; }
.plan-placeholder { border: 1px dashed #d9e6df; padding: 18px 13px; border-radius: 8px; text-align: center; color: #657a70; font-size: 12px; }
.plan-error { color: #a53b2f; background: #fff1ed; border: 1px solid #f4d4cd; border-radius: 8px; padding: 10px 12px; font-size: 12px; }
.plan-summary { display: flex; gap: 9px; align-items: center; margin-bottom: 9px; flex-wrap: wrap; }
.plan-select-all { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: #577266; margin-left: auto; }
.plan-table-wrap { border: 1px solid var(--line); border-radius: 8px; overflow-x: auto; }
.plan-table { min-width: 565px; }
.plan-table td { vertical-align: top; }
.plan-table td strong { font-size: 12px; color: #314f41; }
.plan-table td small { display: block; color: #6a8173; font-size: 10px; line-height: 1.6; margin-top: 2px; }
.plan-table .plan-missing { color: #956e24; font-weight: 600; }
.plan-table .plan-skipped { background: #f8faf9; }
.plan-table input[type=checkbox], .plan-select-all input { min-height: 0; width: 15px; height: 15px; accent-color: var(--green); }
.check-list { display: grid; gap: 8px; }
.check-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--line); border-radius: 8px; padding: 11px; }
.check-item b { color: #886b30; font-size: 12px; }
.check-item p { font-size: 11px; color: #6c8275; margin-top: 5px; }
.check-item .btn { flex: none; }
.host-picker { padding: 11px 12px; border: 1px solid #dcebe1; background: #f7fbf8; border-radius: 9px; }
.host-picker-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.host-picker-title label { margin: 0; font-weight: 600; color: #315b47; }
.btn-suggest { color: #166f53; }
#hostRecommendation:not(:empty) { margin-top: 8px; }
.candidate-list { display: grid; gap: 5px; }
.candidate { display: flex; justify-content: space-between; gap: 8px; padding: 7px 9px; background: #fff; border: 1px solid #e2ede5; border-radius: 6px; text-align: left; }
.candidate strong { color: #365a48; font-size: 11px; }
.candidate span { color: #657c70; font-size: 10px; }
.candidate:hover, .candidate.selected { border-color: #9acdb3; background: #eaf7ef; }

@media (max-width: 1100px) {
  .schedule-hero { align-items: flex-start; flex-wrap: wrap; gap: 15px; }
}
@media (max-width: 980px) {
  .main-shell { margin-left: 0; }
  .mobile-nav { display: inline-flex; }
  .topbar { height: 55px; padding: 0 15px; }
}
@media (max-width: 620px) {
  .schedule-hero { padding: 17px; min-height: 0; }
  .hero-content h1 { font-size: 24px; }
  .hero-actions { flex-shrink: 1; }
  .hero-actions .btn { padding: 7px 10px; min-height: 32px; font-size: 11px; }
  .schedule-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .schedule-stat { padding: 10px 12px; }
  .stat-value { font-size: 24px; }
  .schedule-panel-title { padding: 14px 12px; }
  .schedule-panel .sched-bar, .schedule-panel .filter-row, .band-row { padding-left: 12px; padding-right: 12px; }
  .schedule-panel .sched-search { flex: 1 1 100%; max-width: none; margin: 0; }
  .schedule-panel .tl-head, .schedule-panel .tl-row { grid-template-columns: 133px minmax(0, 1fr); }
  .topbar > .row:last-child > span:first-child { display: none; }
  .plan-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modal-body { padding: 15px; }
  .modal-foot { padding: 11px 13px; }
  .candidate { flex-direction: column; gap: 3px; }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar, .mask, .modal, .blk { transition: none; animation: none; }
}

/* ---------- 侧边栏收起 / 展开 ---------- */
.sidebar { transition: width .22s ease, padding .22s ease, transform .22s ease; }
.side-collapse {
  margin-left: auto; flex: none; width: 26px; height: 26px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  background: #ffffff14; border: 1px solid #ffffff1f; color: #cfe4d8; transition: background .15s, color .15s;
}
.side-collapse:hover { background: #ffffff26; color: #fff; }
.side-collapse svg { width: 15px; height: 15px; }
.side-reopen { display: none; }
.side-reopen .ico { width: 18px; height: 18px; }

body.side-collapsed .sidebar { width: 0; padding: 22px 0 16px; overflow: hidden; border-right: 0; }
body.side-collapsed .sidebar .brand-text,
body.side-collapsed .sidebar .side-workspace,
body.side-collapsed .sidebar .nav-label,
body.side-collapsed .sidebar .nav-item span,
body.side-collapsed .sidebar .nav-badge,
body.side-collapsed .sidebar .sidebar-foot { opacity: 0; pointer-events: none; }
body.side-collapsed .main-shell { margin-left: 0; }
body.side-collapsed .side-reopen { display: inline-flex; }

@media (max-width: 980px) {
  body.side-collapsed .sidebar { width: 0; }
}
/* 班次弹窗固定 680px，优先级高于 .modal.wide */
.modal.shift-modal { max-width: 680px; }

/* 排班表直播间列：左对齐 */
.tl-room-group > .tl-room { justify-content: flex-start !important; text-align: left !important; }
.tl-room-group > .tl-room .room-info { align-items: flex-start !important; text-align: left !important; }
.tl-room-group > .tl-room .rn,
.tl-room-group > .tl-room .rb { text-align: left !important; }
/* 多开平台小标：抖音黑 / 快手橙 / 视频号绿 */
.pf-ico{display:inline-block;vertical-align:-2px;margin-left:3px;border-radius:3px;background:var(--pf);
  color:#fff;text-align:center;font-weight:600;letter-spacing:0;box-shadow:0 0 0 1px rgba(255,255,255,.35) inset}
.room-info .rn{display:flex;align-items:center;gap:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.floor-name{display:flex;align-items:center;gap:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 数据录入：直播间简称 + 平台标 */
.rec-room{display:flex;align-items:center;gap:2px;font-weight:600;font-size:13px;white-space:nowrap}
.rec-room .rr-name{display:inline-flex;align-items:center}
/* 数据录入：同一主号同一场次的多平台行成组 */
tr.rec-group-start > td{border-top:2px solid #e4ece7}
tr.rec-row > td:first-child{position:relative}
tr.rec-group-start > td:first-child:before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;
  border-radius:2px;background:#168367}
/* 数据录入：时段筛选按钮 */
.rec-bands{display:inline-flex;gap:4px;margin-right:6px}
.rec-bands .lg{border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;font-size:12px;
  color:#4a5b53;cursor:pointer}
.rec-bands .lg:hover{border-color:#bcd9cc}
.rec-bands .lg.on{background:var(--green);border-color:var(--green);color:#fff}.rec-editing{display:inline-block;margin-left:6px;font-size:10px;line-height:15px;padding:0 6px;border-radius:8px;
  background:#fff4e5;color:#a8641a;border:1px solid #f3d9b5;vertical-align:1px;white-space:nowrap}
/* 数据录入：抖店同步列 */
.dy-cell{white-space:nowrap}
.dy-main{font-variant-numeric:tabular-nums;font-size:12.5px}
.dy-sub{font-size:10.5px;color:#87928d;display:flex;gap:6px;align-items:center;margin-top:2px}
.dy-tag{font-size:10px;line-height:15px;padding:0 5px;border-radius:5px;background:#f2f5f3;color:#87928d}
.dy-tag.ok{background:#e6f5ee;color:#106e55}
.dy-tag.up{background:#fff1e6;color:#b5642f}
.dy-tag.down{background:#fdecec;color:#b5372f}
/* 数据录入：抖店未归属提示 */
.dy-shelf{background:#fff8e8;border:1px solid #f0dcae;border-radius:10px;padding:8px 12px;margin-bottom:10px;font-size:12px;color:#8a6520}
.dy-shelf-t{color:#a0813c;margin-right:6px}
.dy-shelf b{color:#8a6520}
.dy-more{margin-left:4px;padding:0 5px;font-size:10px;line-height:14px;border-radius:4px;border:1px solid #cfe2d9;background:#fff;color:#106e55;cursor:pointer}
.dy-detail .dy-sum{display:flex;gap:18px;font-size:12.5px;margin-bottom:6px}
.dy-detail .dy-reasons{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:#a0813c;margin-bottom:8px}
.dy-row-off{opacity:.55}

/* 千川状态芯片 */
.qc-sum{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.qc-chip{font-size:11px;padding:2px 8px;border-radius:10px;background:#eef7f3;color:#106e55;border:1px solid #d3e9df}

/* 数据录入：千川消耗建议 */
.qc-main{font-variant-numeric:tabular-nums;color:#1b1f1d}
.qc-sub{margin-top:2px}
.qc-fill{font-size:10px;padding:1px 6px;border-radius:6px;border:1px solid #cfe2d9;background:#fff;color:#106e55;cursor:pointer}
.qc-fill:hover{background:#eef8f3}

/* 系统授权 */
.auth-shop{margin-bottom:18px}
.auth-shop:last-child{margin-bottom:0}
.auth-shop-head{display:flex;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid #eef2f0;margin-bottom:6px}
.tabs-inline{margin:0;border:0;gap:6px}
.tabs-inline .tab{padding:4px 10px;font-size:12px}

/* 系统授权：抖店表格 */
.auth-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.auth-head h2{margin:0}
.auth-filters{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}
.auth-filters input{width:170px;height:30px}
.tbl-fixed{table-layout:fixed;width:100%}
.tbl-fixed th,.tbl-fixed td{vertical-align:middle}
.tbl-fixed td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shop-row td{background:#f7faf8;font-size:12px;padding:8px 12px;border-top:1px solid #eef2f0}
.shop-row:first-child td{border-top:0}

/* 系统授权：应用配置 */
.qc-app{border-top:1px solid #eef2f0;padding:12px 0}
.qc-app:first-child{border-top:0;padding-top:0}
.qc-app-head{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}

.qc-sub.ok{color:#106e55}
.qc-sub.warn{color:#b23a48}

.qc-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:9px;background:#eef6f2;color:#0f6b53;border:1px solid #d5e9e0;cursor:help}

/* 经营核算：账号多选 */
.pf-multi{position:relative}
.pf-multi-btn{height:32px;padding:0 12px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:12px;color:#33433c;cursor:pointer;min-width:130px;text-align:left}
.pf-multi-panel{position:absolute;z-index:30;top:36px;left:0;width:240px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.08);padding:10px}
.pf-multi-panel input#pf-room-kw{width:100%;height:28px;margin:0 0 6px;font-size:12px}
.pf-multi-tools{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.pf-link{border:0;background:none;color:#106e55;font-size:12px;cursor:pointer;padding:0}
.pf-multi-list{max-height:200px;overflow:auto}
.pf-opt{display:flex;align-items:center;gap:7px;font-size:12.5px;padding:2px;cursor:pointer;white-space:nowrap;height:24px;width:auto;border:0;background:none;margin:0;line-height:1.2}
.pf-opt input[type="checkbox"]{width:15px !important;height:15px !important;min-width:15px;margin:0;padding:0;flex:0 0 15px;accent-color:#106e55}
.pf-opt span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;writing-mode:horizontal-tb}

/* 经营核算：时段列不换行 */
.pf-time{white-space:nowrap;min-width:104px}
.pf-time-range{display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums}

.qc-flex{display:flex;align-items:center;gap:6px;white-space:nowrap}
.qc-detail{font-size:11px;padding:1px 8px;border-radius:9px;border:1px solid #d5e9e0;background:#f3faf7;color:#0f6b53;cursor:pointer}
.qc-detail:hover{background:#e6f5ee}

/* 千川消耗列：与抖店同步同款 */
.qc-cell{white-space:nowrap}
.qc-cell .dy-main{font-variant-numeric:tabular-nums}
.qc-cell .dy-sub{display:flex;align-items:center;gap:6px;margin-top:2px}
.qc-badge{display:inline-block;font-size:11px;padding:1px 8px;border-radius:9px;background:#eef6f2;color:#0f6b53;border:1px solid #d5e9e0;cursor:help}
