* { box-sizing: border-box; margin: 0; padding: 0; }
:root{
  --teal:#0d9488; --teal-d:#0f766e; --ink:#1f2937; --dim:#6b7280;
  --line:#e5e7eb; --bg:#f3f5f7;
  --empty:#ffffff; --book:#dbeafe; --book-b:#3b82f6;
  --live:#d1fae5; --live-b:#10b981; --dirty:#fed7aa; --dirty-b:#f59e0b;
  --fix:#e5e7eb; --fix-b:#9ca3af; --hold:#d1d5db; --self:#f1e9da;
}
html,body{ font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  color:var(--ink); background:var(--bg); -webkit-text-size-adjust:100%; }

.topbar{ position:sticky; top:0; z-index:30; display:flex; align-items:center;
  justify-content:space-between; gap:10px; padding:11px 16px;
  background:linear-gradient(120deg,var(--teal),var(--teal-d)); color:#fff; }
.brand{ font-size:19px; font-weight:800; letter-spacing:1px; }
.brand span{ font-size:13px; font-weight:500; opacity:.85; margin-left:6px; }
.navctrl button{ border:none; background:rgba(255,255,255,.18); color:#fff;
  padding:7px 12px; border-radius:8px; font-size:13px; margin-left:7px; cursor:pointer; }
.navctrl button:active{ background:rgba(255,255,255,.32); }

.loading{ padding:40px; text-align:center; color:var(--dim); }

/* 日历 */
.calwrap{ overflow:auto; max-height:calc(100vh - 116px); }
table.cal{ border-collapse:separate; border-spacing:0; font-size:12px; }
.cal th,.cal td{ border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.cal th{ background:#fff; }
.cal thead th{ position:sticky; top:0; z-index:20; }
.corner{ position:sticky; left:0; z-index:25; min-width:72px; width:72px;
  background:#fafafa; color:var(--dim); font-weight:600; padding:6px; text-align:left; }
.dcol{ min-width:48px; width:48px; text-align:center; padding:4px 2px; line-height:1.3; }
.dcol.today{ background:#ecfdf5; }
.dcol.weekend .dnum{ color:#dc2626; }
.dnum{ font-weight:700; }
.dweek{ font-size:10px; color:var(--dim); }
.dleft{ font-size:10px; color:var(--teal); font-weight:600; }

.grouprow .gname{ position:sticky; left:0; z-index:15; background:#f8fafc;
  color:var(--teal-d); font-weight:700; padding:5px 8px; font-size:12px;
  border-bottom:1px solid var(--line); }
.rname{ position:sticky; left:0; z-index:15; background:#fff; min-width:72px; width:72px;
  font-weight:700; font-size:14px; padding:6px 8px; text-align:left; }
.rname .selftag{ font-size:9px; color:#b45309; background:#fef3c7; border-radius:4px;
  padding:1px 4px; margin-left:4px; font-weight:600; vertical-align:middle; }
.rprice{ font-size:10px; color:var(--dim); font-weight:500; }

.cell{ height:40px; text-align:center; cursor:pointer; padding:0 2px;
  overflow:hidden; position:relative; }
.cell .clabel{ font-size:11px; font-weight:600; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; display:block; }
.cell:active{ filter:brightness(.95); }
/* 拖动改期/换房(仅已预订色块可拖,电脑端) */
.cell.can-drag{ cursor:grab; }
.cell.can-drag:active{ cursor:grabbing; }
.cell.drag-src{ opacity:.35; }
.cell.drop-hover{ outline:2px dashed #047857; outline-offset:-2px;
  background:rgba(4,120,87,.10); }

/* 状态色 */
.st-空房{ background:var(--empty); }
.st-预订{ background:#cfe3ff; box-shadow:inset 4px 0 0 #2563eb; color:#1e3a8a; }
.st-在住{ background:#10b981; box-shadow:inset 4px 0 0 #047857; color:#fff; font-weight:700; }
.st-已离{ background:#f3f4f6; color:#9ca3af; }
.st-维修{ background:var(--fix); color:#6b7280; background-image:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(0,0,0,.05) 4px,rgba(0,0,0,.05) 8px); }
.st-保留{ background:var(--hold); color:#4b5563; }
.st-自用{ background:var(--self); color:#92785a; background-image:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(146,120,90,.08) 5px,rgba(146,120,90,.08) 10px); }

/* 图例 */
.legend{ display:flex; flex-wrap:wrap; gap:14px; padding:10px 16px; font-size:12px; color:var(--dim); }
.legend span{ display:flex; align-items:center; gap:5px; }
.legend i{ width:14px; height:14px; border-radius:3px; display:inline-block; border:1px solid var(--line); }
.legend .draghint{ color:#047857; font-weight:600; }

/* 弹窗 */
.mask{ position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:50;
  display:flex; align-items:center; justify-content:center; padding:16px; }
.modal{ background:#fff; border-radius:16px; width:100%; max-width:440px;
  max-height:88vh; display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,.25); }
.modal.sm{ max-width:320px; }
.mhead{ padding:14px 16px; font-weight:700; font-size:16px; border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; }
.mhead .x{ border:none; background:none; font-size:24px; line-height:1; color:var(--dim); cursor:pointer; }
.mbody{ padding:16px; overflow:auto; }
.mfoot{ padding:12px 16px; border-top:1px solid var(--line); display:flex; gap:10px; justify-content:flex-end; }

.cellinfo{ font-size:14px; margin-bottom:12px; color:var(--ink); }
.actions{ display:flex; flex-direction:column; gap:9px; }
.actions hr{ border:none; border-top:1px solid var(--line); margin:3px 0; }
.actions button, .mfoot button{ padding:11px; border:1px solid var(--line); border-radius:10px;
  background:#fff; font-size:15px; cursor:pointer; color:var(--ink); }
.actions button.primary, .mfoot button.primary{ background:var(--teal); color:#fff; border-color:var(--teal); font-weight:600; }
.actions button.ok{ background:#10b981; color:#fff; border-color:#10b981; font-weight:600; }
.mfoot button.danger{ color:#dc2626; border-color:#fecaca; }

/* 订单详情里的续住/换房面板 */
.subpanel{ margin-top:14px; padding:14px; border:1px solid var(--line); border-radius:12px;
  background:#f8fafb; }
.subpanel .sp-title{ font-weight:700; font-size:15px; margin-bottom:10px; color:var(--ink); }
.subpanel .sp-btns{ display:flex; gap:10px; justify-content:flex-end; margin-top:10px; }
.subpanel .sp-btns button{ padding:9px 14px; border:1px solid var(--line); border-radius:10px;
  background:#fff; font-size:14px; cursor:pointer; color:var(--ink); }
.subpanel .sp-btns button.primary{ background:var(--teal); color:#fff; border-color:var(--teal); font-weight:600; }
.subpanel select, .subpanel input{ padding:9px; border:1px solid var(--line); border-radius:9px;
  font-size:15px; background:#fff; width:100%; }

/* 欠费角标 */
.owetag{ display:inline-block; margin-left:8px; padding:1px 8px; border-radius:10px;
  background:#fee2e2; color:#dc2626; font-size:12px; font-weight:700; vertical-align:middle; }
.owebadge{ position:absolute; top:2px; right:2px; background:#dc2626; color:#fff;
  font-size:10px; line-height:1; padding:2px 4px; border-radius:4px; font-weight:700; }
.cell{ position:relative; }

/* 金额三件套 */
.paybox{ display:flex; gap:8px; margin:10px 0 8px; }
.paycell{ flex:1; text-align:center; padding:10px 4px; border:1px solid var(--line);
  border-radius:10px; background:#f8fafb; }
.paycell span{ display:block; font-size:12px; color:var(--dim); margin-bottom:3px; }
.paycell b{ font-size:17px; }
.paycell b.ok{ color:#10b981; }
.paycell b.due{ color:#dc2626; }
.paybtn{ width:100%; padding:10px; border:1px solid var(--teal); border-radius:10px;
  background:#fff; color:var(--teal); font-weight:600; font-size:15px; cursor:pointer; margin-bottom:8px; }

/* 收款记录 */
.paylist{ margin:2px 0 10px; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.payrow{ display:flex; align-items:center; gap:8px; padding:8px 10px; border-top:1px solid var(--line); font-size:13px; }
.payrow:first-child{ border-top:none; }
.payrow .pm{ font-weight:600; color:var(--ink); }
.payrow .pd{ color:var(--dim); flex:1; }
.payrow b{ color:#10b981; }
.payrow .x2{ border:none; background:none; color:#dc2626; font-size:18px; line-height:1; cursor:pointer; padding:0 2px; }

.mfoot.wrap{ flex-wrap:wrap; }

/* 表单 */
.form{ display:flex; flex-direction:column; gap:11px; }
.form label{ display:flex; flex-direction:column; gap:5px; font-size:13px; color:var(--dim); font-weight:600; }
.form input, .form select{ padding:10px; border:1px solid var(--line); border-radius:9px;
  font-size:15px; color:var(--ink); background:#fff; }
.form input:disabled{ background:#f3f4f6; color:#9ca3af; }
.form small{ color:var(--dim); font-weight:400; font-size:11px; }
.row2{ display:flex; gap:10px; }
.row2 label{ flex:1; }
.nbtip{ background:#f0fdfa; border:1px solid #99f6e4; border-radius:9px; padding:10px;
  font-size:13px; color:var(--teal-d); }
.nbtip b{ font-size:15px; }
.err{ background:#fef2f2; border:1px solid #fecaca; color:#dc2626; padding:10px 12px;
  border-radius:9px; font-size:14px; font-weight:600; }

/* 日期提示 */
.datehint{ font-size:12px; color:var(--teal-d); margin-top:-4px; font-weight:600; }
.datehint.bad{ color:#dc2626; }

/* 房间方块选择 */
.roompick{ display:flex; flex-wrap:wrap; gap:7px; }
.chip{ display:inline-flex; align-items:center; gap:4px; padding:7px 11px;
  border:1.5px solid var(--line); border-radius:10px; font-size:14px; font-weight:600;
  color:var(--ink); background:#fff; cursor:pointer; user-select:none; }
.chip em{ font-style:normal; font-size:11px; color:var(--dim); font-weight:500; }
.chip.on{ border-color:var(--teal); background:var(--teal); color:#fff; }
.chip.on em{ color:rgba(255,255,255,.85); }

.kv{ display:flex; gap:10px; padding:7px 0; border-bottom:1px dashed var(--line); font-size:14px; }
.kv span{ color:var(--dim); min-width:74px; }
.kv b{ flex:1; }

/* 订单详情:多房联单逐房成交价 */
.room-price-detail{ margin:12px 0; border:1px solid #cfe5e2; border-radius:12px;
  background:#fbfefd; overflow:hidden; }
.rpd-head{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 12px; background:#ecfdf5; border-bottom:1px solid #cfe5e2; }
.rpd-head b{ font-size:14px; color:var(--teal-d); }
.rpd-head span{ font-size:11px; color:var(--dim); }
.rpd-row{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  padding:10px 12px; border-bottom:1px dashed var(--line); }
.rpd-room{ min-width:0; flex:1; }
.rpd-room>b{ display:block; font-size:14px; color:var(--ink); }
.rpd-room>span{ display:block; margin-top:3px; font-size:11px; color:var(--dim); }
.rpd-price{ flex:0 0 auto; text-align:right; }
.rpd-price>b{ display:block; color:var(--teal-d); font-size:16px; }
.rpd-price>b small{ font-size:11px; font-weight:500; color:var(--dim); }
.rpd-price>span{ display:block; margin-top:2px; color:var(--dim); font-size:11px; }
.rpd-daily{ display:flex; flex-wrap:wrap; gap:4px 8px; margin-top:5px; }
.rpd-daily em{ font-style:normal; font-size:10px; color:#4b5563; background:#f3f4f6;
  border-radius:5px; padding:2px 5px; }
.rpd-total{ display:flex; align-items:center; justify-content:space-between;
  padding:10px 12px; background:#f8faf9; font-size:13px; }
.rpd-total span{ color:var(--dim); font-weight:600; }
.rpd-total b{ color:var(--ink); font-size:16px; }

/* 后台设置 */
.settings{ max-width:680px; margin:0 auto; padding:16px; display:flex; flex-direction:column; gap:18px; }
.card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; }
.card h3{ font-size:16px; margin-bottom:12px; color:var(--ink); }
.card h3 small{ font-size:12px; color:var(--dim); font-weight:400; margin-left:6px; }
.stbl{ display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.strow{ display:flex; align-items:center; gap:10px; }
.grow{ flex:1; }
.settings input, .settings select{ padding:9px 10px; border:1px solid var(--line); border-radius:9px;
  font-size:15px; color:var(--ink); background:#fff; }
.muted{ color:var(--dim); font-size:13px; min-width:42px; text-align:right; }
.link{ border:none; background:none; cursor:pointer; font-size:14px; padding:6px 8px; }
.link.danger{ color:#dc2626; }
.addrow{ display:flex; gap:10px; align-items:center; }
.addrow .primary{ white-space:nowrap; padding:9px 14px; border:none; border-radius:9px;
  background:var(--teal); color:#fff; font-weight:600; cursor:pointer; font-size:14px; }
.addrow .primary.big{ width:100%; padding:12px; font-size:15px; }

.roomcard{ border:1px solid var(--line); border-radius:12px; padding:12px; margin-bottom:11px;
  display:flex; flex-direction:column; gap:9px; }
.roomcard.off{ background:#f9fafb; opacity:.7; }
.rc-row{ display:flex; gap:10px; align-items:center; }
.rc-name{ width:90px; font-weight:700; }
.rc-row select{ flex:1; }
.rc-price{ display:flex; align-items:center; gap:5px; font-size:14px; color:var(--dim); }
.rc-price input{ width:90px; }
.rc-chk{ display:flex; align-items:center; gap:5px; font-size:14px; color:var(--ink); cursor:pointer; }
.rc-chk input{ width:18px; height:18px; }
.rc-remark{ width:100%; }
.rc-actions{ display:flex; gap:10px; justify-content:flex-end; align-items:center; }
.rc-actions .primary{ padding:8px 18px; border:none; border-radius:9px; background:var(--teal);
  color:#fff; font-weight:600; cursor:pointer; font-size:14px; }

/* 轻提示 */
.toast{ position:fixed; bottom:30px; left:50%; transform:translateX(-50%); z-index:60;
  background:rgba(17,24,39,.92); color:#fff; padding:11px 20px; border-radius:24px;
  font-size:14px; box-shadow:0 8px 24px rgba(0,0,0,.25); }

/* 登录页 */
.loginwrap{ min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:24px; background:linear-gradient(150deg,#0d9488,#0f766e 60%,#134e4a); }
.loginbox{ background:#fff; border-radius:18px; padding:28px 24px; width:100%; max-width:360px;
  display:flex; flex-direction:column; gap:13px; box-shadow:0 24px 60px rgba(0,0,0,.3); }
.loginbrand{ font-size:26px; font-weight:800; letter-spacing:2px; color:var(--teal-d); text-align:center; }
.loginbrand span{ font-size:14px; font-weight:500; color:var(--dim); margin-left:6px; letter-spacing:0; }
.loginbox label{ display:flex; flex-direction:column; gap:5px; font-size:13px; color:var(--dim); font-weight:600; }
.loginbox input{ padding:11px; border:1px solid var(--line); border-radius:10px; font-size:16px; }
.loginbox .primary.big{ width:100%; padding:13px; border:none; border-radius:10px; background:var(--teal);
  color:#fff; font-weight:700; font-size:16px; cursor:pointer; letter-spacing:4px; }
.loginbox .primary.big:disabled{ opacity:.6; }
.logintip{ font-size:12px; color:var(--dim); text-align:center; }

/* 经营看板 */
.dash{ max-width:680px; margin:0 auto; padding:16px; display:flex; flex-direction:column; gap:16px; }
.dashdate{ font-size:13px; color:var(--dim); font-weight:600; }
.kpis{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.kpi{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px; }
.kpi.accent{ background:linear-gradient(135deg,var(--teal),var(--teal-d)); border:none; color:#fff; }
.kpi-t{ font-size:13px; color:var(--dim); font-weight:600; }
.kpi.accent .kpi-t{ color:rgba(255,255,255,.85); }
.kpi-v{ font-size:26px; font-weight:800; margin:4px 0 2px; }
.kpi-s{ font-size:12px; color:var(--dim); }
.kpi.accent .kpi-s{ color:rgba(255,255,255,.9); }

.muted2{ color:var(--dim); font-size:13px; padding:4px 0; }
.chanlist{ display:flex; flex-direction:column; gap:9px; }
.chanrow{ display:flex; align-items:center; gap:10px; font-size:13px; }
.chan-n{ min-width:62px; font-weight:600; }
.chan-b{ flex:1; background:#f1f5f9; border-radius:6px; height:14px; overflow:hidden; }
.chan-b i{ display:block; height:100%; background:var(--teal); border-radius:6px; }
.chan-v{ min-width:120px; text-align:right; color:var(--dim); }

.cumtbl{ display:flex; flex-direction:column; gap:2px; }
.cumhead, .cumrow{ display:grid; grid-template-columns:48px 1fr 1fr 56px 64px; gap:6px;
  align-items:center; padding:8px 4px; font-size:13px; }
.cumhead{ color:var(--dim); font-size:12px; border-bottom:1px solid var(--line); }
.cumhead span:not(:first-child), .cumrow b{ text-align:right; }
.cumrow{ border-bottom:1px dashed var(--line); }
.cumrow span{ color:var(--dim); font-weight:600; }
.cumrow b{ font-weight:700; }

/* 设置:微信 & 账号 */
.fld{ display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--dim); font-weight:600; margin-bottom:8px; }
.wxbtns{ display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
.wxbtns button{ padding:9px 14px; border-radius:9px; font-size:14px; font-weight:600; cursor:pointer; border:1px solid var(--line); background:#fff; }
.wxbtns .primary{ background:var(--teal); color:#fff; border-color:var(--teal); }
.wxbtns .ok{ background:#10b981; color:#fff; border-color:#10b981; }
.wxbtns .ghost{ color:var(--teal-d); }
.wxbtns button:disabled{ opacity:.6; }
.wxprev{ margin-top:12px; background:#f8fafc; border:1px solid var(--line); border-radius:10px;
  padding:12px; font-size:12px; line-height:1.6; white-space:pre-wrap; color:var(--ink);
  font-family:inherit; max-height:260px; overflow:auto; }
.wxhelp{ margin-top:10px; font-size:12px; color:var(--dim); line-height:1.5; }
.userrow{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.user-n{ min-width:140px; font-weight:600; font-size:14px; }
.user-n em{ font-style:normal; font-size:11px; color:#b45309; background:#fef3c7;
  border-radius:4px; padding:1px 5px; margin-left:4px; }
.userrow input{ flex:1; }
.userrow .primary{ padding:8px 14px; border:none; border-radius:9px; background:var(--teal);
  color:#fff; font-weight:600; cursor:pointer; font-size:14px; white-space:nowrap; }

/* 顶部:日历选日期 + 显示天数 */
.navctrl .datejump{ border:none; border-radius:8px; padding:6px 8px; font-size:13px;
  margin-left:7px; background:rgba(255,255,255,.92); color:var(--ink); }
.navctrl .dayssel{ border:none; border-radius:8px; padding:6px 8px; font-size:13px;
  margin-left:7px; background:rgba(255,255,255,.92); color:var(--ink); }

/* 新建预订:每间房单独定价 */
.priceedit{ border:1px solid var(--line); border-radius:10px; padding:8px 10px; margin-top:2px; }
.pe-head{ font-size:13px; font-weight:600; color:var(--ink); margin-bottom:6px; }
.pe-head small{ font-weight:400; color:var(--dim); margin-left:6px; }
.pe-row{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:5px 0; border-top:1px dashed var(--line); }
.pe-row:first-of-type{ border-top:none; }
.pe-name{ font-size:14px; font-weight:600; }
.pe-val{ display:flex; align-items:center; gap:4px; font-size:14px; color:var(--dim); }
.pe-val input{ width:96px; padding:6px 8px; border:1px solid var(--line); border-radius:8px;
  font-size:15px; text-align:right; }

/* 下午茶记账 */
.tea-add{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.tea-add input,.tea-add select{ padding:8px 10px; border:1px solid var(--line);
  border-radius:9px; font-size:14px; }
.tea-add .tea-amt{ width:96px; }
.tea-add .tea-rmk{ flex:1; min-width:110px; }
.tea-add .primary{ border:none; background:var(--teal); color:#fff; font-weight:600;
  padding:8px 14px; border-radius:9px; cursor:pointer; white-space:nowrap; }
.tea-list{ border-top:1px solid var(--line); }
.tea-row{ display:flex; align-items:center; gap:10px; padding:8px 2px;
  border-bottom:1px solid var(--line); font-size:14px; }
.tea-row .pm{ background:#ecfdf5; color:var(--teal-d); border-radius:5px; padding:1px 7px;
  font-size:12px; }
.tea-row .tea-r{ flex:1; color:var(--dim); }
.tea-row b{ font-weight:700; }
.tea-row .x2{ border:none; background:#fee2e2; color:#dc2626; width:22px; height:22px;
  border-radius:6px; cursor:pointer; font-size:14px; line-height:1; }

/* 自选时段统计 */
.range-pick{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.range-pick label{ display:flex; align-items:center; gap:4px; font-size:13px; color:var(--dim); }
.range-pick input{ padding:7px 9px; border:1px solid var(--line); border-radius:8px; font-size:14px; }
.range-pick .primary{ border:none; background:var(--teal); color:#fff; font-weight:600;
  padding:8px 16px; border-radius:9px; cursor:pointer; }
.range-quick{ display:flex; gap:8px; margin-top:10px; }
.range-quick .ghost{ border:1px solid var(--line); background:#fff; color:var(--ink);
  padding:6px 14px; border-radius:8px; font-size:13px; cursor:pointer; }
.range-out{ margin-top:12px; }
.cumhead2{ display:flex; align-items:baseline; justify-content:space-between;
  padding:8px 0; border-bottom:2px solid var(--teal); font-size:14px; color:var(--dim); }
.cumhead2 b{ font-size:22px; color:var(--teal-d); }
.range-grid{ display:grid; grid-template-columns:auto 1fr auto 1fr; gap:8px 14px;
  padding:12px 0; font-size:14px; }
.range-grid span{ color:var(--dim); }
.range-grid b{ font-weight:700; text-align:right; }
/* 住宿 / 下午茶 分卡(参考订单来了营业额概况) */
.rev-split{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.rev-card{ border:1px solid var(--line); border-radius:12px; padding:12px 14px; }
.rev-card.accom{ background:#eef4ff; border-color:#c7d8f7; }
.rev-card.tea{ background:#fff5ea; border-color:#fbdcb6; }
.rc-top{ display:flex; align-items:center; justify-content:space-between; }
.rc-top span{ font-size:14px; font-weight:600; color:var(--ink); }
.rc-top em{ font-style:normal; font-size:12px; color:var(--dim); }
.rc-val{ font-size:24px; font-weight:800; margin:6px 0 4px; }
.rev-card.accom .rc-val{ color:#1d4ed8; }
.rev-card.tea .rc-val{ color:#c2620c; }
.rc-sub{ font-size:12px; color:var(--dim); }
.range-foot{ display:flex; align-items:center; justify-content:space-between;
  margin-top:12px; padding-top:10px; border-top:1px solid var(--line); font-size:14px; }
.range-foot b{ font-weight:800; color:var(--teal-d); }
.range-note{ margin-top:8px; font-size:12px; color:var(--dim); line-height:1.5; }
@media (max-width:480px){ .rev-split{ grid-template-columns:1fr; } }

@media (max-width:480px){
  .brand{ font-size:17px; } .navctrl button{ padding:6px 9px; font-size:12px; margin-left:5px; }
  .navctrl .datejump,.navctrl .dayssel{ font-size:12px; margin-left:5px; }
  .kpi-v{ font-size:22px; }
  .chan-v{ min-width:96px; font-size:12px; }
}
