/* ══════════════════════════════════════════════════════════════════════
   HST Blue Sheets — Reports workspace
   Uses the app's existing design tokens (--bg, --tx, --gold, …) so the
   section inherits both themes without a second palette to maintain.
══════════════════════════════════════════════════════════════════════ */

/* ── Workspace frame ─────────────────────────────────────────────── */
.rp-wrap{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--page)}

.rp-top{
  display:flex;align-items:center;gap:14px;flex-shrink:0;
  padding:12px 20px;background:var(--bg);border-bottom:1px solid var(--bdr);
}
.rp-top-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.rp-top-crumb{
  display:flex;align-items:center;gap:6px;
  font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--tx3);
}
.rp-top-crumb button{
  font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;
  color:var(--gold);padding:0;font-family:var(--f);
}
.rp-top-crumb button:hover{text-decoration:underline}
.rp-top-title{font-size:17px;font-weight:700;color:var(--tx);letter-spacing:-.3px;line-height:1.2}
.rp-top-sub{font-size:11px;color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-top-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}

.rp-body{display:flex;flex:1;min-height:0;overflow:hidden}
.rp-main{flex:1;min-width:0;overflow-y:auto;padding:16px 20px 40px}

/* ── Filter rail ─────────────────────────────────────────────────── */
.rp-rail{
  width:236px;flex-shrink:0;background:var(--bg);border-right:1px solid var(--bdr);
  display:flex;flex-direction:column;overflow:hidden;transition:width var(--tr),opacity var(--tr);
}
.rp-rail.collapsed{width:0;border-right:none;opacity:0;pointer-events:none}
.rp-rail-hd{
  display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--bdr);flex-shrink:0;
}
.rp-rail-hd-t{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--tx2)}
.rp-rail-count{
  margin-left:auto;font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px;
  background:var(--gold-bg);color:var(--gold);border:1px solid var(--gold-bd);
}
.rp-rail-clear{font-size:10px;font-weight:600;color:var(--tx3);padding:2px 4px}
.rp-rail-clear:hover{color:var(--red)}
.rp-rail-body{flex:1;overflow-y:auto;padding:4px 0 20px}

.rp-fgroup{border-bottom:1px solid var(--bdr)}
.rp-fgroup-hd{
  display:flex;align-items:center;gap:7px;width:100%;padding:9px 14px;
  font-size:11px;font-weight:700;color:var(--tx2);font-family:var(--f);text-align:left;
}
.rp-fgroup-hd:hover{background:var(--bg2)}
.rp-fgroup-hd .rp-chev{transition:transform var(--tr);color:var(--tx3);flex-shrink:0}
.rp-fgroup.open .rp-chev{transform:rotate(90deg)}
.rp-fgroup-n{margin-left:auto;font-size:10px;color:var(--tx3);font-weight:600}
.rp-fgroup-body{display:none;padding:0 8px 8px}
.rp-fgroup.open .rp-fgroup-body{display:block}

.rp-fitem{
  display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--r4);
  font-size:11.5px;color:var(--tx2);cursor:pointer;transition:background .12s;
}
.rp-fitem:hover{background:var(--bg2)}
.rp-fitem.sel{background:var(--gold-bg);color:var(--gold);font-weight:600}
/* Excluded = still visible but greyed, so users see what a selection ruled out */
.rp-fitem.excluded{opacity:.34;cursor:default}
.rp-fitem.excluded:hover{background:none}
.rp-fbox{
  width:12px;height:12px;border-radius:3px;border:1.5px solid var(--bdr2);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.rp-fitem.sel .rp-fbox{background:var(--gold);border-color:var(--gold)}
.rp-fitem.sel .rp-fbox svg{display:block}
.rp-fbox svg{display:none;color:#fff}
.rp-fitem-n{margin-left:auto;font-size:10px;color:var(--tx4);font-weight:600;flex-shrink:0}
.rp-fitem-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Toolbar controls ────────────────────────────────────────────── */
.rp-btn{
  height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 11px;border-radius:var(--r4);
  border:1px solid var(--bdr2);background:var(--bg2);color:var(--tx2);
  font-size:11px;font-weight:600;font-family:var(--f);transition:all .14s;white-space:nowrap;
}
.rp-btn:hover{background:var(--bg3);color:var(--tx)}
.rp-btn.primary{background:var(--gold-bg);border-color:var(--gold-bd);color:var(--gold)}
.rp-btn.active{background:var(--gold);border-color:var(--gold);color:#fff}
.rp-sel{
  height:30px;border-radius:var(--r4);border:1px solid var(--bdr2);background:var(--bg2);
  color:var(--tx2);font-size:11px;font-weight:600;font-family:var(--f);padding:0 8px;cursor:pointer;outline:none;
}
.rp-sel:focus{border-color:var(--gold)}
.rp-sel option{background:var(--bg);color:var(--tx)}
.rp-cmp{display:flex;align-items:center;gap:6px}
.rp-cmp-lbl{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--tx3)}
.rp-cmp-arrow{color:var(--tx4);font-size:12px}

/* ── Active filter chips ─────────────────────────────────────────── */
.rp-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 0 12px}
.rp-chip{
  display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:99px;
  background:var(--gold-bg);border:1px solid var(--gold-bd);color:var(--gold);
  font-size:10.5px;font-weight:600;
}
.rp-chip button{color:inherit;opacity:.6;font-size:13px;line-height:1;padding:0}
.rp-chip button:hover{opacity:1}
.rp-chips-clear{font-size:10.5px;font-weight:600;color:var(--tx3)}
.rp-chips-clear:hover{color:var(--red)}

/* ── Panels & grid ───────────────────────────────────────────────── */
/* stretch (not start) so panels sharing a row end at the same baseline —
   a chart panel beside a taller one otherwise leaves a ragged edge */
.rp-grid{display:grid;gap:14px;grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch}
.rp-grid > .rp-panel{display:flex;flex-direction:column}
.rp-grid > .rp-panel > .rp-panel-body{flex:1;display:flex;flex-direction:column}
/* Panel subtitles need a floor width or they wrap one word per line */
.rp-panel-hd > div:first-child{min-width:0;flex:1}
/* Full 1–12 set — a module asking for a span with no rule would fall back
   to a single auto column and collapse to zero width. */
.rp-c1{grid-column:span 1}.rp-c2{grid-column:span 2}.rp-c3{grid-column:span 3}
.rp-c4{grid-column:span 4}.rp-c5{grid-column:span 5}.rp-c6{grid-column:span 6}
.rp-c7{grid-column:span 7}.rp-c8{grid-column:span 8}.rp-c9{grid-column:span 9}
.rp-c10{grid-column:span 10}.rp-c11{grid-column:span 11}.rp-c12{grid-column:span 12}
@media(max-width:1200px){
  .rp-c1,.rp-c2,.rp-c3,.rp-c4,.rp-c5,.rp-c6,.rp-c7,.rp-c8,.rp-c9,.rp-c10,.rp-c11{grid-column:span 12}
}

.rp-panel{
  background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r12);
  box-shadow:var(--sh);overflow:hidden;
}
.rp-panel-hd{
  display:flex;align-items:flex-start;gap:10px;padding:13px 16px 11px;border-bottom:1px solid var(--bdr);
}
.rp-panel-t{font-size:13px;font-weight:700;color:var(--tx);letter-spacing:-.2px}
.rp-panel-s{font-size:11px;color:var(--tx3);margin-top:2px;line-height:1.45}
.rp-panel-tools{margin-left:auto;display:flex;align-items:center;gap:6px;flex-shrink:0}
.rp-panel-body{padding:14px 16px}
.rp-panel-body.tight{padding:8px 10px}
.rp-chart{position:relative;width:100%}

/* Small icon button used in panel headers */
.rp-ibtn{
  width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--r4);
  border:1px solid var(--bdr);background:var(--bg2);color:var(--tx3);transition:all .14s;
}
.rp-ibtn:hover{background:var(--bg3);color:var(--tx)}

/* ── KPI tiles ───────────────────────────────────────────────────── */
.rp-kpis{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));margin-bottom:14px}
.rp-kpi{
  background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);padding:11px 13px;
  box-shadow:var(--sh);position:relative;overflow:hidden;
}
.rp-kpi-l{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--tx3)}
.rp-kpi-v{font-size:22px;font-weight:700;color:var(--tx);letter-spacing:-.6px;line-height:1.15;margin-top:5px;
  font-variant-numeric:tabular-nums}
.rp-kpi-d{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:11px;font-weight:600}
.rp-kpi-d.up{color:var(--green)}.rp-kpi-d.dn{color:var(--red)}.rp-kpi-d.flat{color:var(--tx3)}
.rp-kpi-sub{font-size:10px;color:var(--tx4);font-weight:500}
.rp-kpi-spark{position:absolute;right:9px;top:9px;opacity:.75}

/* ── Data tables ─────────────────────────────────────────────────── */
.rp-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.rp-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:11.5px}
.rp-tbl th{
  position:sticky;top:0;z-index:2;background:var(--bg2);
  padding:8px 10px;text-align:right;white-space:nowrap;
  font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--tx3);
  border-bottom:1px solid var(--bdr);cursor:pointer;user-select:none;
}
.rp-tbl th:first-child{text-align:left;left:0;z-index:3}
.rp-tbl th.sorted{color:var(--gold)}
.rp-tbl th .rp-sort{opacity:.5;margin-left:3px;font-size:9px}
.rp-tbl td{
  padding:7px 10px;text-align:right;white-space:nowrap;color:var(--tx2);
  border-bottom:1px solid var(--bdr);font-variant-numeric:tabular-nums;
}
.rp-tbl td:first-child{
  text-align:left;color:var(--tx);font-weight:600;position:sticky;left:0;background:var(--bg);z-index:1;
  max-width:230px;overflow:hidden;text-overflow:ellipsis;
}
.rp-tbl tbody tr:hover td{background:var(--bg2)}
.rp-tbl tbody tr:hover td:first-child{background:var(--bg2)}
.rp-tbl tbody tr.clickable{cursor:pointer}
.rp-tbl tfoot td{
  font-weight:700;color:var(--tx);background:var(--bg2);border-top:2px solid var(--bdr2);border-bottom:none;
  position:sticky;bottom:0;
}
.rp-tbl tfoot td:first-child{background:var(--bg2)}
.rp-pos{color:var(--green);font-weight:600}
.rp-neg{color:var(--red);font-weight:600}
.rp-mut{color:var(--tx4)}

/* ── Heatmap ─────────────────────────────────────────────────────── */
.rp-heat{display:grid;gap:2px;font-size:10.5px}
.rp-heat-corner{position:sticky;left:0;background:var(--bg);z-index:3}
.rp-heat-col{
  padding:5px 3px;text-align:center;font-size:9.5px;font-weight:700;color:var(--tx3);
  letter-spacing:.3px;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.rp-heat-row{
  display:flex;align-items:baseline;gap:6px;padding:0 8px 0 2px;
  position:sticky;left:0;background:var(--bg);z-index:2;min-width:0;
}
.rp-heat-row-n{font-size:11px;font-weight:600;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-heat-row-m{font-size:9.5px;color:var(--tx4);margin-left:auto;flex-shrink:0}
.rp-heat-cell{
  display:flex;align-items:center;justify-content:center;height:26px;border-radius:3px;
  font-weight:600;font-variant-numeric:tabular-nums;overflow:hidden;
}
.rp-heat-na{background:var(--bg2);border:1px dashed var(--bdr)}
.rp-heat-legend{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--tx3);margin-top:10px;flex-wrap:wrap}
.rp-heat-scale{display:flex;gap:2px}
.rp-heat-swatch{width:22px;height:10px;border-radius:2px}

/* ── Inline marks ────────────────────────────────────────────────── */
.rp-bullet{
  display:inline-block;position:relative;width:70px;height:8px;border-radius:99px;
  background:var(--bg3);vertical-align:middle;overflow:visible;
}
.rp-bullet-fill{position:absolute;left:0;top:0;height:100%;border-radius:99px}
.rp-bullet-ref{position:absolute;top:-2px;width:2px;height:12px;background:var(--tx3);border-radius:1px}
.rp-bullet-na{color:var(--tx4)}
.rp-spark{vertical-align:middle}
.rp-spark-na{display:inline-block;width:74px;height:20px}

.rp-timeline{display:block;overflow:visible}

/* ── Report picker (mega panel) ──────────────────────────────────── */
/* One column per section, each stretching to fill the panel width. */
/* One column per section, five across. The ragged menu was not the grid's
   fault: the breakpoint dropped it to three columns below 1700px, and five
   sections of unequal length in three columns leave a hole wherever a short
   section sits above a tall one. Five columns is one clean row, and it fits
   comfortably down to ~1340px, so the breakpoint moves there instead. */
.rp-menu{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0 22px;padding:2px 0 4px;align-items:start;
}
.rp-menu-col{display:flex;flex-direction:column;gap:8px;min-width:0}
/* Cards stack inside their section column; on a phone the menu is a single
   column and this is what keeps them one per row. */
.rp-menu-cards{display:flex;flex-direction:column;gap:8px;min-width:0}
.rp-menu-sec{
  display:flex;align-items:center;gap:7px;
  font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
  color:var(--tx3);padding:0 2px 6px;border-bottom:1px solid var(--bdr);margin-bottom:2px;
}
.rp-menu-sec-n{
  font-size:9px;font-weight:700;letter-spacing:0;color:var(--tx4);
  background:var(--bg3);border-radius:99px;padding:1px 6px;
}
.rp-menu-card{
  display:flex;align-items:flex-start;gap:11px;width:100%;
  padding:11px 13px;border:1px solid var(--bdr);border-radius:10px;
  background:var(--bg2);cursor:pointer;transition:all .14s;text-align:left;font-family:var(--f);
}
.rp-menu-card:hover{background:var(--bg3);border-color:var(--gold-bd);transform:translateY(-1px)}
.rp-menu-ic{
  width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:var(--gold-bg);color:var(--gold);
}
/* Both are spans — without display:block the title and description
   render on the same line. */
.rp-menu-txt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.rp-menu-t{display:block;font-size:12.5px;font-weight:700;color:var(--tx);line-height:1.3}
.rp-menu-d{display:block;font-size:11px;color:var(--tx3);line-height:1.45}

/* 5 columns hold to ~1340px; below that a card column gets too narrow to read.
   Card min width is roughly 240px, so 5 x 240 + 4 x 22 gaps + 48 panel padding. */
@media(max-width:1340px){ .rp-menu{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 22px} }
@media(max-width:1000px){ .rp-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px} }
@media(max-width:700px){  .rp-menu{grid-template-columns:1fr;gap:16px} }

/* ── Notes / caveats ─────────────────────────────────────────────── */
.rp-note{
  display:flex;gap:8px;padding:9px 12px;border-radius:var(--r8);
  background:var(--bg2);border:1px solid var(--bdr);
  font-size:11px;color:var(--tx3);line-height:1.5;margin-top:12px;
}
.rp-note svg{flex-shrink:0;margin-top:1px;color:var(--tx4)}
.rp-note b{color:var(--tx2);font-weight:600}

.rp-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  padding:60px 20px;color:var(--tx3);text-align:center;
}
.rp-empty h4{font-size:14px;font-weight:700;color:var(--tx2)}
.rp-empty p{font-size:12px;max-width:380px;line-height:1.5}

/* ── Print ───────────────────────────────────────────────────────── */
@media print{
  .rp-rail,.rp-top-actions,.rp-panel-tools,.rp-chips-clear{display:none!important}
  .rp-panel{break-inside:avoid;box-shadow:none;border-color:#ccc}
  .rp-main{overflow:visible;padding:0}
  .rp-body{display:block;overflow:visible}
}

/* ── Mobile ──────────────────────────────────────────────────────── */
@media(max-width:768px){
  .rp-top{flex-wrap:wrap;gap:10px;padding:10px 14px}
  .rp-top-actions{width:100%;margin-left:0;overflow-x:auto}
  .rp-main{padding:12px 14px 40px}
  .rp-rail{
    position:fixed;left:0;top:0;bottom:0;z-index:320;width:270px;
    box-shadow:var(--sh2);transform:translateX(0);
  }
  .rp-rail.collapsed{transform:translateX(-100%);width:270px;opacity:1;border-right:1px solid var(--bdr)}
  .rp-kpis{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}
  .rp-kpi-v{font-size:19px}
}

/* Monthly Report */
.mr-shell{display:flex;flex-direction:column;gap:14px}
.mr-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);padding:11px 13px;box-shadow:var(--sh)}
.mr-controls label{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--tx3)}
.mr-controls input{width:92px}
.mr-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mr-scope{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);padding:13px 15px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:4px;min-width:0}
.mr-scope span{font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--tx3)}
.mr-scope b{font-size:25px;line-height:1;color:var(--tx);font-variant-numeric:tabular-nums;letter-spacing:-.4px}
.mr-scope small{font-size:11px;color:var(--tx3);font-weight:600}
.mr-panel{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh);overflow:hidden}
.mr-panel-hd{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 15px;border-bottom:1px solid var(--bdr)}
.mr-panel-hd h3{font-size:13px;font-weight:800;color:var(--tx);letter-spacing:-.2px;margin:0}
.mr-panel-hd span{font-size:10.5px;color:var(--tx3);font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:56%}
.mr-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px}
.mr-summary-card{border:1px solid var(--bdr);border-radius:var(--r4);overflow:hidden;background:var(--bg)}
.mr-summary-title{background:var(--gold);color:#fff;font-size:11px;font-weight:800;text-align:center;padding:7px 8px}
.mr-table{width:100%;border-collapse:collapse;font-size:10.5px}
.mr-table th{background:var(--bg2);color:var(--tx3);font-size:9px;font-weight:800;text-transform:uppercase;padding:6px 6px;text-align:right;border-bottom:1px solid var(--bdr);white-space:nowrap}
.mr-table th:first-child,.mr-table td:first-child{text-align:left}
.mr-table td{padding:6px 6px;text-align:right;border-bottom:1px solid var(--bdr);font-variant-numeric:tabular-nums;color:var(--tx2);white-space:nowrap}
.mr-table td:first-child{color:var(--tx);font-weight:650;white-space:normal}
.mr-table tr:last-child td{border-bottom:none}
@media(max-width:1200px){.mr-summary-grid,.mr-scope-grid{grid-template-columns:1fr}.mr-panel-hd{align-items:flex-start;flex-direction:column}.mr-panel-hd span{max-width:100%;text-align:left;white-space:normal}}

/* Monthly Report HTML document */
.mr-report{display:flex;flex-direction:column;gap:16px;max-width:1480px;margin:0 auto;color:var(--tx)}
.mr-page{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh);overflow:hidden}
.mr-cover{border-top:4px solid var(--gold)}
.mr-cover-hd{padding:22px 24px 16px;text-align:center;border-bottom:1px solid var(--bdr);background:linear-gradient(180deg,var(--bg),var(--bg2))}
.mr-cover-hd span,.mr-page-hd span{display:block;font-size:10px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;color:var(--gold);margin-bottom:5px}
.mr-cover-hd h1{font-size:28px;line-height:1.08;margin:0;color:var(--tx);letter-spacing:0}
.mr-cover-hd p{font-size:13px;font-weight:700;color:var(--tx2);margin-top:5px}
.mr-cover-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-bottom:1px solid var(--bdr)}
.mr-cover-meta div{padding:14px 18px;border-right:1px solid var(--bdr);min-width:0}
.mr-cover-meta div:last-child{border-right:none}
.mr-cover-meta span{display:block;font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3);margin-bottom:5px}
.mr-cover-meta b{display:block;font-size:18px;line-height:1.15;color:var(--tx);font-variant-numeric:tabular-nums}
.mr-cover-meta small{display:block;font-size:11px;color:var(--tx3);font-weight:600;margin-top:3px}
.mr-page-hd{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border-bottom:1px solid var(--bdr);background:var(--bg2)}
.mr-page-hd h2{font-size:18px;line-height:1.15;margin:0;color:var(--tx);letter-spacing:0}
.mr-scope-pill{font-size:11px;font-weight:800;color:var(--gold);border:1px solid var(--gold-bd);background:var(--gold-bg);border-radius:99px;padding:5px 10px;white-space:nowrap}
.mr-table-scroll{overflow:auto;max-width:100%}
.mr-wide{margin:0}
.mr-wide th:first-child,.mr-wide td:first-child{width:36%}
.mr-detail{min-width:1320px;font-size:10px}
.mr-detail th{font-size:8.6px;padding:6px 5px;text-align:right;vertical-align:middle}
.mr-detail th:first-child,.mr-detail td:first-child{text-align:left;position:sticky;left:0;background:var(--bg);z-index:1;min-width:190px;max-width:260px;white-space:normal}
.mr-detail thead th{background:var(--bg2);z-index:2}
.mr-detail thead th:first-child{z-index:3;background:var(--bg2)}
.mr-detail td{padding:5px 5px;text-align:right;white-space:nowrap;font-size:10px}
.mr-detail .mr-market-row td{background:var(--gold-bg);color:var(--tx);font-weight:800;border-top:1px solid var(--gold-bd)}
.mr-detail .mr-market-row td:first-child{color:var(--gold);background:var(--gold-bg)}
@media(max-width:900px){.mr-cover-meta{grid-template-columns:1fr}.mr-cover-meta div{border-right:none;border-bottom:1px solid var(--bdr)}.mr-cover-meta div:last-child{border-bottom:none}.mr-page-hd{align-items:flex-start;flex-direction:column}.mr-scope-pill{white-space:normal}.mr-cover-hd h1{font-size:23px}}
@media print{.mr-controls{display:none!important}.mr-report{max-width:none;gap:0}.mr-page{box-shadow:none;border-radius:0;break-after:page}.mr-page:last-child{break-after:auto}.mr-table-scroll{overflow:visible}.mr-detail{min-width:0;font-size:7px}.mr-detail th,.mr-detail td{font-size:7px;padding:3px}.mr-cover-hd{background:#fff}}

/* Monthly Report browser-PDF export */
@page{size:letter landscape;margin:.32in}
@media print{
  body.monthly-report-print{background:#fff!important;color:#111!important;height:auto!important;overflow:visible!important}
  body.monthly-report-print .hdr,
  body.monthly-report-print .btab,
  body.monthly-report-print .rp-top,
  body.monthly-report-print .rp-chips,
  body.monthly-report-print .mr-controls{display:none!important}
  body.monthly-report-print .shell,
  body.monthly-report-print .body,
  body.monthly-report-print #p-dash,
  body.monthly-report-print #dash-content,
  body.monthly-report-print .rp-wrap,
  body.monthly-report-print .rp-body,
  body.monthly-report-print .rp-main{display:block!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important;padding:0!important;margin:0!important;width:100%!important}
  body.monthly-report-print #p-ai{display:none!important}
  body.monthly-report-print .mr-report{display:block!important;max-width:none!important;margin:0!important;color:#111!important;background:#fff!important}
  body.monthly-report-print .mr-page{break-after:page;page-break-after:always;box-shadow:none!important;border:1px solid #bbb!important;border-radius:0!important;margin:0 0 .12in!important;overflow:visible!important;background:#fff!important}
  body.monthly-report-print .mr-page:last-child{break-after:auto;page-break-after:auto}
  body.monthly-report-print .mr-cover-hd,
  body.monthly-report-print .mr-page-hd,
  body.monthly-report-print .mr-table th{background:#f1f5f9!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.monthly-report-print .mr-cover{border-top:4px solid #3d6fa8!important}
  body.monthly-report-print .mr-summary-grid{grid-template-columns:repeat(3,1fr)!important;gap:.1in!important;padding:.1in!important}
  body.monthly-report-print .mr-cover-meta{grid-template-columns:repeat(3,1fr)!important}
  body.monthly-report-print .mr-table-scroll{overflow:visible!important;max-width:none!important}
  body.monthly-report-print .mr-detail{min-width:0!important;width:100%!important;font-size:6.6px!important;table-layout:fixed}
  body.monthly-report-print .mr-detail th,
  body.monthly-report-print .mr-detail td{font-size:6.6px!important;line-height:1.12!important;padding:2.6px 3px!important;white-space:normal!important}
  body.monthly-report-print .mr-detail th:first-child,
  body.monthly-report-print .mr-detail td:first-child{position:static!important;min-width:0!important;max-width:none!important;width:16%!important;background:inherit!important}
  body.monthly-report-print .mr-detail .mr-market-row td{background:#eaf2fb!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.monthly-report-print .rp-pos{color:#16803b!important}.monthly-report-print .rp-neg{color:#b42318!important}.monthly-report-print .rp-mut{color:#777!important}
}

/* Monthly Report interactivity */
.mr-interactive-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
.mr-filter-rail{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh)}
.mr-filter-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 13px;border-bottom:1px solid var(--bdr)}
.mr-filter-hd span{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx2)}
.mr-filter-hd button{font-size:10px;font-weight:700;color:var(--gold)}
.mr-filter-block{display:flex;flex-direction:column;gap:8px;padding:12px 13px;border-bottom:1px solid var(--bdr)}
.mr-filter-block label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--tx3)}
.mr-filter-block .rp-sel{width:100%}
.mr-filter-label{display:block;font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--tx3);margin-bottom:8px}
.mr-filter-label:has(.mr-filter-tools){display:flex;align-items:center;justify-content:space-between;gap:8px}
.mr-filter-tools{display:inline-flex;align-items:center;gap:4px}
.mr-filter-tools button{border:1px solid var(--line);background:#fff;border-radius:999px;color:var(--brand);font-size:10px;font-weight:800;padding:3px 7px;line-height:1;cursor:pointer}
.mr-filter-tools button:hover{background:#eef6ff;border-color:#b8d3ee}
.mr-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r4);padding:3px}
.mr-seg button{height:27px;border-radius:4px;font-size:11px;font-weight:800;color:var(--tx3)}
.mr-seg button.on{background:var(--gold);color:#fff}
.mr-filter-group{padding:12px 13px;border-bottom:1px solid var(--bdr)}
.mr-checks{display:flex;flex-direction:column;gap:4px}
.mr-check{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 6px;border-radius:var(--r4);font-size:11px;color:var(--tx2);cursor:pointer}
.mr-check:hover{background:var(--bg2)}
.mr-check input{accent-color:var(--gold)}
.mr-check span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mr-check b{font-size:10px;color:var(--tx4);font-weight:700}
.mr-filter-actions{display:flex;flex-direction:column;gap:7px;padding:12px 13px}
.mr-document-host{min-width:0}
.mr-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;padding:12px;border-bottom:1px solid var(--bdr)}
.mr-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);padding:11px 12px;min-width:0;transition:border-color .14s,transform .14s,box-shadow .14s}
.mr-kpi:hover{border-color:var(--gold-bd);box-shadow:var(--sh);transform:translateY(-1px)}
.mr-kpi span{font-size:9px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--tx3)}
.mr-kpi b{font-size:19px;line-height:1;color:var(--tx);font-variant-numeric:tabular-nums;letter-spacing:0}
.mr-kpi small{font-size:10px;color:var(--tx3);line-height:1.35}
.mr-visual-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;gap:12px;padding:12px;border-bottom:1px solid var(--bdr)}
.mr-viz{border:1px solid var(--bdr);border-radius:var(--r8);padding:11px;background:var(--bg)}
.mr-viz h3{font-size:11px;font-weight:800;color:var(--tx);margin:0 0 10px;letter-spacing:0}
.mr-bar-row,.mr-dist-row,.mr-mix-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,1.4fr) auto;align-items:center;gap:9px;width:100%;min-height:25px;font-size:10.5px;color:var(--tx2);text-align:left}
.mr-bar-row{border-radius:var(--r4);padding:3px 2px}
.mr-bar-row:hover{background:var(--bg2)}
.mr-bar-row span,.mr-dist-row span,.mr-mix-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;color:var(--tx)}
.mr-bar-row i,.mr-dist-row i,.mr-mix-row i{height:6px;background:var(--bg3);border-radius:99px;overflow:hidden;display:block}
.mr-bar-row em,.mr-dist-row em,.mr-mix-row em{display:block;height:100%;background:var(--gold);border-radius:99px}
.mr-dist-row em{background:var(--green)}
.mr-dist-row:nth-of-type(3) em{background:var(--amber)}
.mr-dist-row:nth-of-type(4) em{background:var(--red)}
.mr-mix-row{grid-template-columns:minmax(56px,.8fr) auto minmax(120px,1.5fr)}
.mr-mix-row em{background:var(--blue)}
.mr-market-row,.mr-detail tbody tr[data-drill]{cursor:pointer}
.mr-detail tbody tr[data-drill]:hover td{background:var(--bg2)}
.mr-loading{min-height:460px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh);text-align:center;padding:30px}
.mr-loading h4{font-size:15px;color:var(--tx);margin:0}
.mr-loading p{font-size:12px;font-weight:700;color:var(--gold);max-width:520px;line-height:1.45}
.mr-loading small{font-size:11px;color:var(--tx3)}
.mr-loader{height:46px;display:flex;align-items:end;gap:5px}
.mr-loader span{width:8px;border-radius:99px;background:var(--gold);animation:mrLoad 900ms ease-in-out infinite;opacity:.85}
.mr-loader span:nth-child(1){height:18px;animation-delay:-300ms}.mr-loader span:nth-child(2){height:32px;animation-delay:-150ms}.mr-loader span:nth-child(3){height:24px}.mr-loader span:nth-child(4){height:38px;animation-delay:150ms}
@keyframes mrLoad{0%,100%{transform:scaleY(.45);opacity:.45}50%{transform:scaleY(1);opacity:1}}
.mr-modal-backdrop{position:fixed;inset:0;z-index:500;background:rgba(15,23,42,.44);display:flex;align-items:center;justify-content:center;padding:28px}
.mr-modal{width:min(920px,100%);max-height:min(760px,90vh);overflow:hidden;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:0 18px 60px rgba(0,0,0,.28)}
.mr-modal header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:15px 17px;border-bottom:1px solid var(--bdr);background:var(--bg2)}
.mr-modal header span{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--gold)}
.mr-modal header h3{font-size:18px;margin:2px 0 0;color:var(--tx);letter-spacing:0}
.mr-modal header button{width:28px;height:28px;border-radius:var(--r4);background:var(--bg);border:1px solid var(--bdr);font-size:18px;color:var(--tx3)}
.mr-modal-body{padding:14px;overflow:auto}
.mr-modal-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:13px}
.mr-modal-kpi{border:1px solid var(--bdr);border-radius:var(--r8);padding:10px;background:var(--bg)}
.mr-modal-kpi span{display:block;font-size:9px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--tx3)}
.mr-modal-kpi b{display:block;font-size:18px;line-height:1.1;margin-top:5px;color:var(--tx);font-variant-numeric:tabular-nums}
.mr-modal-kpi small{display:block;font-size:10px;margin-top:5px;color:var(--tx3)}
@media(max-width:1150px){.mr-interactive-shell{grid-template-columns:1fr}.mr-filter-rail{position:relative;top:auto;max-height:none}.mr-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mr-visual-grid{grid-template-columns:1fr}}
@media(max-width:700px){.mr-kpi-grid,.mr-modal-kpis{grid-template-columns:1fr}.mr-bar-row,.mr-dist-row,.mr-mix-row{grid-template-columns:1fr}.mr-modal-backdrop{padding:12px}}
@media print{body.monthly-report-print .mr-filter-rail{display:none!important}body.monthly-report-print .mr-interactive-shell{display:block!important}body.monthly-report-print .mr-kpi-grid{grid-template-columns:repeat(6,1fr)!important}body.monthly-report-print .mr-visual-grid{grid-template-columns:1.15fr .85fr .85fr!important}body.monthly-report-print .mr-modal-backdrop{display:none!important}}


/* Monthly Report requested refinements */
.mr-filter-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.mr-filter-toggle{display:inline-flex;align-items:center;gap:7px;min-width:0;padding:0;color:var(--tx2);font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;font-family:var(--f);text-align:left}
.mr-filter-toggle span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mr-filter-toggle i,.mr-filter-label>i{font-style:normal;font-size:9px;color:var(--tx4);letter-spacing:0;text-transform:none;font-weight:800}
.mr-filter-tools{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}
.mr-filter-tools button{border:1px solid var(--bdr);background:var(--bg2);border-radius:99px;color:var(--gold);font-size:10px;font-weight:800;padding:3px 7px;line-height:1;cursor:pointer}
.mr-filter-tools button:hover{background:var(--gold-bg);border-color:var(--gold-bd)}
.mr-filter-group[data-open="0"] .mr-checks{display:none}
.mr-filter-group[data-open="1"] .mr-checks{max-height:236px;overflow:auto;padding-right:2px}
.mr-filter-group[data-open="1"] .mr-checks::-webkit-scrollbar{width:7px}
.mr-filter-group[data-open="1"] .mr-checks::-webkit-scrollbar-thumb{background:var(--bdr2);border-radius:99px}
.mr-dot-plot{display:flex;flex-direction:column;gap:7px}
.mr-dot-row{display:grid;grid-template-columns:minmax(118px,1fr) minmax(130px,1.3fr) auto;align-items:center;gap:10px;width:100%;min-height:28px;border-radius:var(--r4);padding:3px 2px;text-align:left;color:var(--tx2)}
.mr-dot-row:hover{background:var(--bg2)}
.mr-dot-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:700;color:var(--tx)}
.mr-dot-row i{position:relative;height:2px;background:linear-gradient(90deg,#dbe7f2,#b9cadb);border-radius:99px;display:block}
.mr-dot-row em{position:absolute;top:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:#2f6fa3;box-shadow:0 0 0 3px rgba(47,111,163,.14)}
.mr-dot-row b{font-size:11px;color:var(--tx);font-variant-numeric:tabular-nums}
.mr-histogram{height:172px;display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:12px;padding-top:8px}
.mr-hist-bar{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;text-align:center;color:var(--tx2);border-radius:var(--r4);padding:0 4px 4px}
.mr-hist-bar:hover{background:var(--bg2)}
.mr-hist-bar i{width:58%;height:var(--h);min-height:10px;border-radius:7px 7px 3px 3px;background:#18a058;display:block}
.mr-hist-bar:nth-child(2) i{background:#d7a33a}.mr-hist-bar:nth-child(3) i{background:#d94b3d}
.mr-hist-bar b{font-size:15px;color:var(--tx);font-variant-numeric:tabular-nums}.mr-hist-bar span{font-size:9.5px;font-weight:800;line-height:1.15;color:var(--tx3)}
.mr-donut{width:154px;aspect-ratio:1;margin:2px auto 12px;border-radius:50%;background:conic-gradient(#2f6fa3 0 var(--rooms),#18a058 var(--rooms) var(--fnb),#d7a33a var(--fnb) 100%);display:grid;place-items:center;position:relative}
.mr-donut:after{content:"";position:absolute;inset:28px;border-radius:50%;background:var(--bg)}
.mr-donut span,.mr-donut b{position:relative;z-index:1;text-align:center}.mr-donut span{align-self:end;font-size:9px;font-weight:800;color:var(--tx3)}.mr-donut b{align-self:start;font-size:16px;color:var(--tx)}
.mr-mix-legend{display:flex;flex-direction:column;gap:7px}.mr-mix-dot{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;gap:7px;align-items:center;font-size:10.5px;color:var(--tx2)}
.mr-mix-dot i{width:10px;height:10px;border-radius:50%;background:#2f6fa3}.mr-mix-dot.fnb i{background:#18a058}.mr-mix-dot.other i{background:#d7a33a}
.mr-mix-dot span{font-weight:750;color:var(--tx)}.mr-mix-dot b{font-variant-numeric:tabular-nums;color:var(--tx)}.mr-mix-dot small{color:var(--tx3);font-size:10px}
.mr-detail th[data-mr-colgroup]{cursor:pointer;transition:filter .14s,box-shadow .14s}.mr-detail th[data-mr-colgroup]:hover{filter:saturate(1.25);box-shadow:inset 0 -2px 0 currentColor}
.mr-detail .mr-g-revpar{background:rgba(47,111,163,.08)}.mr-detail .mr-g-fnb{background:rgba(24,160,88,.08)}.mr-detail .mr-g-total{background:rgba(215,163,58,.1)}.mr-detail .mr-g-ebitda{background:rgba(135,91,180,.09)}.mr-detail .mr-g-margin{background:rgba(40,150,165,.09)}
.mr-detail thead .mr-g-revpar{background:rgba(47,111,163,.2);color:#245a86}.mr-detail thead .mr-g-fnb{background:rgba(24,160,88,.18);color:#107044}.mr-detail thead .mr-g-total{background:rgba(215,163,58,.22);color:#8b6315}.mr-detail thead .mr-g-ebitda{background:rgba(135,91,180,.18);color:#65428b}.mr-detail thead .mr-g-margin{background:rgba(40,150,165,.18);color:#1f7581}
.mr-detail[data-focus="revpar"] .mr-g-revpar,.mr-detail[data-focus="fnb"] .mr-g-fnb,.mr-detail[data-focus="total"] .mr-g-total,.mr-detail[data-focus="ebitda"] .mr-g-ebitda,.mr-detail[data-focus="margin"] .mr-g-margin{box-shadow:inset 0 0 0 999px rgba(255,255,255,.28);outline:2px solid currentColor;outline-offset:-2px}
.mr-modal{width:min(1040px,100%)}
.mr-modal header h3{font-size:21px}.mr-modal header span{font-size:11px}.mr-modal-body{font-size:13px;line-height:1.45;padding:18px}.mr-modal .mr-table{font-size:12px}.mr-modal .mr-table th{font-size:10px}.mr-modal .mr-table td{font-size:12px;padding:8px 7px}
.mr-modal-kpis{grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.mr-modal-kpi{padding:13px 14px;border-width:1px;border-left-width:5px}.mr-modal-kpi span{font-size:10.5px}.mr-modal-kpi b{font-size:24px}.mr-modal-kpi small{font-size:12px;line-height:1.45}
.mr-modal-kpi-revpar{border-left-color:#2f6fa3;background:rgba(47,111,163,.08)}.mr-modal-kpi-occupancy{border-left-color:#18a058;background:rgba(24,160,88,.08)}.mr-modal-kpi-adr{border-left-color:#d7a33a;background:rgba(215,163,58,.1)}.mr-modal-kpi-total_rev{border-left-color:#875bb4;background:rgba(135,91,180,.09)}.mr-modal-kpi-gop{border-left-color:#2896a5;background:rgba(40,150,165,.09)}.mr-modal-kpi-gop_margin{border-left-color:#d94b3d;background:rgba(217,75,61,.08)}
@media(max-width:700px){.mr-dot-row{grid-template-columns:1fr}.mr-histogram{height:150px}.mr-donut{width:132px}.mr-modal-kpis{grid-template-columns:1fr}}
@media print{body.monthly-report-print .mr-detail th[data-mr-colgroup]{box-shadow:none!important}}

/* Monthly Report generate-on-demand fixes */
.mr-ready .mr-loader{display:none}
.mr-ready{min-height:360px}
.mr-filter-actions .rp-btn[data-mr-refresh]{font-weight:850}
.mr-detail thead tr:nth-child(2) th:first-child{position:static!important;left:auto!important;min-width:0!important;max-width:none!important;width:auto!important;text-align:right!important;white-space:normal!important;z-index:2!important;background:rgba(47,111,163,.2)!important}
body.monthly-report-print .mr-detail thead tr:nth-child(2) th:first-child{position:static!important;width:auto!important;background:#f1f5f9!important}


/* Monthly Report source transparency */
.mr-source-pill{display:inline-flex;align-items:center;gap:6px;margin:10px 12px 12px auto;padding:4px 9px;border:1px solid var(--bdr);border-radius:99px;background:var(--bg2);color:var(--tx3);font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;line-height:1;font-family:var(--f)}
.mr-source-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:#2f6fa3;box-shadow:0 0 0 3px rgba(47,111,163,.12)}
.mr-source-pill:hover{background:var(--gold-bg);border-color:var(--gold-bd);color:var(--gold)}
.mr-viz .mr-source-pill{display:flex;width:max-content;margin:11px 0 0 auto}
.mr-summary-card .mr-source-pill{display:flex;width:max-content}
.mr-detail-page>.mr-source-pill,.mr-page>.mr-source-pill{display:flex;width:max-content}
.mr-source-modal{width:min(1120px,96vw)}
.mr-source-meta{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:var(--tx2);font-size:12px}
.mr-source-meta b{font-size:10px;letter-spacing:.7px;text-transform:uppercase;color:var(--tx3)}
.mr-source-query{max-height:62vh;overflow:auto;margin:0;padding:14px;border:1px solid var(--bdr);border-radius:var(--r8);background:#0f172a;color:#dbeafe;font-size:11px;line-height:1.5;white-space:pre;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
.mr-source-query code{font:inherit;color:inherit}
@media print{body.monthly-report-print .mr-source-pill{display:none!important}}

/* Monthly Report modal KPI delta clarity */
.mr-modal-kpi small{display:flex!important;flex-direction:column;gap:6px;margin-top:9px}
.mr-modal-delta{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:7px;padding:6px 8px;font-size:13px;line-height:1.1;font-weight:850;letter-spacing:0}
.mr-modal-delta em{font-style:normal;font-size:11px;font-weight:900;letter-spacing:.6px;text-transform:uppercase;color:currentColor;opacity:.8}
.mr-modal-delta b{font-size:15px;font-weight:900;font-variant-numeric:tabular-nums;color:currentColor}
.mr-modal-delta-pos{background:rgba(24,160,88,.12);color:#108044}
.mr-modal-delta-neg{background:rgba(217,75,61,.12);color:#b42318}
.mr-modal-delta-mut{background:var(--bg2);color:var(--tx3)}

/* Monthly Report layout polish - scope, filters, and compact visuals */
.mr-interactive-shell[data-rail="collapsed"]{grid-template-columns:48px minmax(0,1fr)}
/* Filter rail sizing — single source of truth for both report rails.
   The page header scrolls away rather than sticking, so the gap between the
   rail's top and the bottom of the viewport changes as you scroll. Sizing the
   rail off a fixed `100vh - 96px` guess pushed its foot — and the Generate /
   Export buttons that live there — below the fold. RR.stickRail() measures the
   real gap and publishes it as --rail-max; the fallback covers first paint. */
.mr-filter-rail,.bsf-filter-rail{position:sticky;top:12px;align-self:start;height:auto;max-height:var(--rail-max,calc(100vh - 24px));overflow:hidden;display:flex;flex-direction:column}
.mr-filter-body{flex:1 1 auto;min-height:0;overflow-y:auto}
.mr-filter-actions,.mr-cache-block{flex:0 0 auto}
.mr-filter-body::-webkit-scrollbar{width:7px}.mr-filter-body::-webkit-scrollbar-thumb{background:var(--bdr2);border-radius:99px}
.mr-filter-hd-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.mr-filter-actions{position:relative;bottom:auto;z-index:4;flex-shrink:0;background:var(--bg);border-top:1px solid var(--bdr);box-shadow:0 -8px 16px rgba(15,23,42,.06)}
.mr-rail-expand{width:100%;height:100%;min-height:360px;display:flex;align-items:center;justify-content:center;border-radius:var(--r8);background:var(--bg);color:var(--gold);font-size:10px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;writing-mode:vertical-rl;text-orientation:mixed}
.mr-rail-expand:hover{background:var(--gold-bg)}
.mr-cover-hd{padding:16px 20px 11px}.mr-cover-meta div{padding:11px 16px}.mr-kpi-grid{padding:10px;gap:8px}.mr-kpi{padding:9px 10px;gap:4px}.mr-kpi b{font-size:18px}.mr-kpi small{font-size:9.5px}
.mr-visual-grid{align-items:stretch;padding:10px;gap:10px}.mr-viz{display:flex;flex-direction:column;min-height:0;padding:9px}.mr-viz h3{margin-bottom:7px}.mr-dot-plot{gap:5px}.mr-dot-row{min-height:23px}.mr-histogram{height:118px;margin-top:auto;gap:9px}.mr-hist-bar b{font-size:13px}.mr-donut{width:122px;margin:0 auto 8px}.mr-donut:after{inset:22px}.mr-mix-legend{gap:5px}.mr-mix-dot{font-size:10px}
.mr-summary-grid{align-items:stretch}.mr-summary-card{display:flex;flex-direction:column}.mr-summary-card h3{padding:9px 11px;margin:0;border-bottom:1px solid var(--bdr);font-size:12px}.mr-summary-card .mr-table{flex:1}.mr-summary-card .mr-source-pill{margin-top:auto}
.mr-market-meta{display:block;margin-top:2px;font-size:9px;line-height:1.25;color:var(--tx3);font-weight:750;text-transform:none;letter-spacing:0}.mr-market-row strong{display:block;color:inherit}
.mr-modal-kpis{grid-template-columns:repeat(auto-fit,minmax(176px,1fr))}.mr-modal-kpi-fnb_rev{border-left-color:#18a058;background:rgba(24,160,88,.08)}.mr-modal-kpi-ebitda{border-left-color:#875bb4;background:rgba(135,91,180,.09)}.mr-modal-kpi-ebitda_margin{border-left-color:#2896a5;background:rgba(40,150,165,.09)}
@media(max-width:1150px){.mr-interactive-shell[data-rail="collapsed"]{grid-template-columns:1fr}.mr-filter-rail{position:relative;top:auto;height:auto;max-height:none;overflow:visible}.mr-rail-expand{min-height:44px;writing-mode:horizontal-tb}}
@media print{body.monthly-report-print .mr-interactive-shell[data-rail="collapsed"]{display:block!important}body.monthly-report-print .mr-filter-body{overflow:visible!important}}

/* Visual band — real charts in titled panels, matching the tier reports.
   Two columns so each chart gets enough width to be read rather than squinted at. */
.mr-visual-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.mr-viz-hd{margin-bottom:9px}
.mr-viz-hd h3{margin:0 0 3px;font-size:12px;font-weight:800;color:var(--tx);letter-spacing:0}
.mr-viz-hd p{margin:0;font-size:10.5px;line-height:1.45;color:var(--tx3);font-weight:600}
.mr-viz-hd p b{color:var(--tx2);font-weight:800}
.mr-viz-plot{position:relative;flex:1 1 auto;min-height:0;min-width:0}
.mr-viz-plot canvas{max-width:100%!important}
@media(max-width:1150px){.mr-visual-grid-2{grid-template-columns:1fr!important}}
/* Print keeps two columns; four stacked charts would run to three pages. */
@media print{body.monthly-report-print .mr-visual-grid-2{grid-template-columns:repeat(2,1fr)!important}}

/* Export dialog */
.mr-export-modal{width:min(520px,94vw)}
.mr-export-group{padding:14px 16px;border-bottom:1px solid var(--bdr)}
.mr-export-group:last-child{border-bottom:none}
.mr-export-lbl{display:block;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3);margin-bottom:9px}
.mr-export-opt{display:flex;align-items:flex-start;gap:10px;padding:9px 11px;border:1px solid var(--bdr);border-radius:var(--r8);margin-bottom:7px;cursor:pointer;transition:border-color .14s,background .14s}
.mr-export-opt:last-child{margin-bottom:0}
.mr-export-opt:hover{border-color:var(--gold-bd);background:var(--gold-bg)}
.mr-export-opt input{margin-top:2px;flex-shrink:0;accent-color:var(--brand)}
.mr-export-opt b{display:block;font-size:12.5px;color:var(--tx);font-weight:700}
.mr-export-opt small{display:block;font-size:11px;color:var(--tx3);line-height:1.4;margin-top:2px}
.mr-export-opt:has(input:checked){border-color:var(--brand);background:rgba(47,111,163,.06)}
.mr-export-warn{margin:8px 0 0;font-size:11px;font-weight:700;color:#dc2626}
.mr-export-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--bdr);background:var(--bg2)}
/* Only the selected period is on screen; print shows whatever was ticked. */
.mr-detail-page[hidden]{display:none}
@media print{
  body.monthly-report-print .mr-detail-page[hidden]{display:block!important}
  body.monthly-report-print.mr-print-no-mtd .mr-detail-page[data-mr-period="MTD"]{display:none!important}
  body.monthly-report-print.mr-print-no-ytd .mr-detail-page[data-mr-period="YTD"]{display:none!important}
  /* Keep rows and cards whole across page breaks — the main source of cut-offs. */
  body.monthly-report-print .mr-page,body.monthly-report-print .mr-kpi,
  body.monthly-report-print .mr-viz,body.monthly-report-print .mr-summary-card{break-inside:avoid;page-break-inside:avoid}
  body.monthly-report-print .mr-detail tr,body.monthly-report-print .mr-table tr{break-inside:avoid;page-break-inside:avoid}
  body.monthly-report-print .mr-detail thead{display:table-header-group}
  body.monthly-report-print .mr-detail-page{break-before:page;page-break-before:always}
}

/* Monthly Report cache management */
.mr-cache-block{padding:10px 13px;border-top:1px solid var(--bdr);background:var(--bg2);display:flex;flex-direction:column;gap:3px}
.mr-cache-block span{font-size:9px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3)}
.mr-cache-block b{font-size:13px;color:var(--tx);line-height:1.15}
.mr-cache-block small{font-size:10px;color:var(--tx3);line-height:1.35}
.mr-filter-actions .rp-btn[data-mr-cache-clean]{background:var(--bg2);border:1px solid var(--bdr);color:var(--tx2);font-weight:800}
.mr-filter-actions .rp-btn[data-mr-cache-clean]:hover{background:var(--gold-bg);border-color:var(--gold-bd);color:var(--gold)}
@media print{body.monthly-report-print .mr-cache-block{display:none!important}}

/* Blue Sheets Feed */
.bsf-shell{display:flex;flex-direction:column;gap:14px;max-width:1480px;margin:0 auto;color:var(--tx)}
.bsf-head{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh);padding:16px 18px}
.bsf-head span{display:block;font-size:10px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.bsf-head h2{font-size:24px;line-height:1.1;margin:0;color:var(--tx);letter-spacing:0}
.bsf-head p{font-size:12px;line-height:1.4;color:var(--tx3);font-weight:600;margin:4px 0 0}
.bsf-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.bsf-kpis div{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh);padding:13px 15px;min-width:0}
.bsf-kpis span{display:block;font-size:9px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--tx3);margin-bottom:5px}
.bsf-kpis b{display:block;font-size:23px;line-height:1.05;color:var(--tx);font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bsf-kpis small{display:block;font-size:11px;color:var(--tx3);font-weight:600;margin-top:4px}
.bsf-panel{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh);overflow:hidden}
.bsf-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;border-bottom:1px solid var(--bdr);background:var(--bg2)}
.bsf-panel h3{font-size:13px;font-weight:800;color:var(--tx);margin:0;letter-spacing:0}
.bsf-panel>header span{font-size:11px;font-weight:800;color:var(--gold);white-space:nowrap}
.bsf-table-wrap{overflow:auto;max-height:560px}
.bsf-table{width:100%;border-collapse:collapse;font-size:11px}
.bsf-table th{position:sticky;top:0;z-index:1;background:var(--bg2);color:var(--tx3);font-size:9px;font-weight:800;text-transform:uppercase;text-align:right;padding:8px 9px;border-bottom:1px solid var(--bdr);white-space:nowrap}
.bsf-table th:first-child,.bsf-table td:first-child{text-align:left;min-width:220px}
.bsf-table td{padding:8px 9px;text-align:right;border-bottom:1px solid var(--bdr);font-variant-numeric:tabular-nums;color:var(--tx2);white-space:nowrap;vertical-align:middle}
.bsf-table tbody tr{cursor:pointer}
.bsf-table tbody tr:hover td{background:var(--gold-bg)}
.bsf-table strong{display:block;color:var(--tx);font-weight:750}
.bsf-table small{display:block;color:var(--tx3);font-size:10px;font-weight:600;margin-top:2px}
.bsf-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800;border:1px solid var(--bdr);background:var(--bg2);color:var(--tx3)}
.bsf-pill.ok{background:rgba(34,156,98,.12);border-color:rgba(34,156,98,.28);color:#168251}
.bsf-pill.mut{background:var(--bg2);color:var(--tx3)}
.bsf-empty{min-height:130px;border:none;box-shadow:none}
.bsf-modal-backdrop{position:fixed;inset:0;background:rgba(9,18,32,.42);z-index:5000;display:flex;align-items:center;justify-content:center;padding:22px}
.bsf-modal{width:min(760px,96vw);max-height:88vh;overflow:auto;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:0 24px 70px rgba(0,0,0,.24)}
.bsf-modal header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--bdr);background:var(--bg2)}
.bsf-modal header span{display:block;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.bsf-modal h3{font-size:18px;margin:0;color:var(--tx);letter-spacing:0}
.bsf-modal button{border:1px solid var(--bdr);background:var(--bg);border-radius:50%;width:30px;height:30px;font-size:18px;line-height:1;cursor:pointer;color:var(--tx2)}
.bsf-modal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px 16px}
.bsf-modal-grid div{border:1px solid var(--bdr);border-radius:var(--r6);padding:10px;background:var(--bg)}
.bsf-modal-grid span{display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:var(--tx3);margin-bottom:4px}
.bsf-modal-grid b{display:block;font-size:13px;color:var(--tx);word-break:break-word}
.bsf-modal-grid small{display:block;color:var(--tx3);font-size:11px;margin-top:3px}
.bsf-modal pre{margin:0;padding:14px 16px;background:#0f172a;color:#e5edf7;font-size:11px;line-height:1.45;overflow:auto}
@media(max-width:1000px){.bsf-head{align-items:flex-start;flex-direction:column}.bsf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.bsf-modal-grid{grid-template-columns:1fr}}
@media(max-width:620px){.bsf-kpis{grid-template-columns:1fr}.bsf-head h2{font-size:21px}}



/* Blue Sheets Feed - PDF-style historical report */
.bsf-interactive-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
.bsf-interactive-shell[data-rail="collapsed"]{grid-template-columns:48px minmax(0,1fr)}
.bsf-document-host{min-width:0}
/* Rail sizing is shared with .mr-filter-rail above; only chrome differs here. */
.bsf-filter-rail{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh)}
.bsf-report{display:flex;flex-direction:column;gap:14px;max-width:1540px;margin:0 auto;color:var(--tx)}
.bsf-page{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r8);box-shadow:var(--sh);overflow:hidden;padding:14px 16px}
.bsf-page>header,.bsf-hotel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--bdr);padding-bottom:10px;margin-bottom:10px}
.bsf-page header span,.bsf-hotel-head span{display:block;font-size:10px;font-weight:850;letter-spacing:.9px;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.bsf-page h2,.bsf-hotel-head h2{font-size:18px;line-height:1.1;margin:0;color:var(--tx);letter-spacing:0}
.bsf-page header p,.bsf-hotel-head p{font-size:11px;color:var(--tx3);margin:4px 0 0;font-weight:700}
.bsf-toc-grid{column-count:3;column-gap:28px}
.bsf-toc-market{break-inside:avoid;margin:0 0 12px}
.bsf-toc-market h3{font-size:12px;margin:0 0 5px;color:var(--tx);display:flex;align-items:baseline;gap:7px}
.bsf-toc-market h3 small{font-size:9.5px;color:var(--tx4);font-weight:700}
.bsf-toc-market a{display:block;color:var(--tx2);font-size:11px;line-height:1.45;text-decoration:none;padding:1px 0}
.bsf-toc-market a:hover{color:var(--gold);text-decoration:underline}
.bsf-market-break{background:var(--bg);border:1px solid var(--bdr);border-left:4px solid var(--gold);border-radius:var(--r8);padding:12px 15px;box-shadow:var(--sh)}
.bsf-market-break h2{font-size:17px;margin:0;color:var(--tx)}
.bsf-market-break p{font-size:11px;color:var(--tx3);font-weight:800;margin:3px 0 0}
.bsf-perf{width:100%;border-collapse:collapse;font-size:9.5px;table-layout:auto;margin-top:4px}
.bsf-perf th{background:#fffeb0;color:#1d30d6;border:1px solid #93a3d8;font-size:9px;font-weight:900;line-height:1.06;text-align:center;padding:4px 3px;vertical-align:middle}
.bsf-perf th:first-child{background:var(--bg);border-color:var(--bdr);color:var(--tx3);min-width:74px;text-align:left}
.bsf-perf td{border-bottom:1px solid var(--bdr);color:var(--tx2);font-variant-numeric:tabular-nums;text-align:right;padding:4px 4px;white-space:nowrap;line-height:1.2}
.bsf-perf td:first-child{text-align:left;color:var(--tx);font-weight:800;background:var(--bg2)}
.bsf-perf tr:nth-child(even) td:not(:first-child){background:rgba(148,163,184,.06)}
.bsf-summary-blocks{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr 1fr;gap:0;border-top:1px solid var(--bdr);border-left:1px solid var(--bdr);margin-top:10px}
.bsf-summary-blocks div{border-right:1px solid var(--bdr);border-bottom:1px solid var(--bdr);padding:7px 8px;min-width:0;background:var(--bg)}
.bsf-summary-blocks h4{font-size:10px;line-height:1.1;margin:0 0 5px;color:#1d30d6;font-weight:900;text-align:center}
.bsf-summary-blocks p{display:flex;justify-content:space-between;gap:7px;margin:2px 0;font-size:9.5px;color:var(--tx2);line-height:1.25}
.bsf-summary-blocks b{color:var(--tx);font-weight:800;text-align:left}
.bsf-source-pill{display:inline-flex;align-items:center;justify-content:center;margin:10px 7px 0 0;border:1px solid var(--gold-bd);background:var(--gold-bg);color:var(--gold);border-radius:999px;font-size:10px;font-weight:850;padding:4px 9px;cursor:pointer}
.bsf-source-pill:hover{filter:saturate(1.15);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.bsf-source-modal pre{margin:0;padding:16px;background:#0f172a;color:#e5edf7;font-size:12px;line-height:1.45;overflow:auto;white-space:pre-wrap}
.bsf-check{display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:11.5px;color:var(--tx2);cursor:pointer}
.bsf-check input{width:14px;height:14px;accent-color:var(--gold);flex-shrink:0}
.bsf-check span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bsf-check b{margin-left:auto;font-size:10px;color:var(--tx4);font-weight:800}
.bsf-legacy .bsf-table tbody tr{cursor:default}
@media(max-width:1150px){.bsf-interactive-shell,.bsf-interactive-shell[data-rail="collapsed"]{grid-template-columns:1fr}.bsf-filter-rail{position:relative;top:auto;height:auto;max-height:none;overflow:visible}.bsf-toc-grid{column-count:2}.bsf-summary-blocks{grid-template-columns:1fr 1fr}.bsf-perf{font-size:8.8px}}
@media(max-width:760px){.bsf-toc-grid{column-count:1}.bsf-summary-blocks{grid-template-columns:1fr}.bsf-page{padding:12px}.bsf-perf{display:block;overflow-x:auto;white-space:nowrap}}
@media print{
  @page{size:landscape;margin:.25in}
  body.bsf-report-print{background:#fff!important;color:#111!important;height:auto!important;overflow:visible!important}
  body.bsf-report-print .hdr,body.bsf-report-print .btab,body.bsf-report-print .rp-top,body.bsf-report-print .bsf-filter-rail,body.bsf-report-print .bsf-head,body.bsf-report-print .bsf-kpis,body.bsf-report-print .bsf-source-pill,body.bsf-report-print .bsf-modal-backdrop{display:none!important}
  body.bsf-report-print .shell,body.bsf-report-print .body,body.bsf-report-print #p-dash,body.bsf-report-print #dash-content,body.bsf-report-print .rp-wrap,body.bsf-report-print .rp-body,body.bsf-report-print .rp-main,body.bsf-report-print .bsf-interactive-shell,body.bsf-report-print .bsf-document-host{display:block!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important;padding:0!important;margin:0!important;width:100%!important}
  body.bsf-report-print #p-ai{display:none!important}
  body.bsf-report-print .bsf-report{display:block!important;max-width:none!important;margin:0!important;color:#111!important;background:#fff!important}
  body.bsf-report-print .bsf-page{break-after:page;page-break-after:always;box-shadow:none!important;border:0!important;border-radius:0!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important}
  body.bsf-report-print .bsf-page:last-child{break-after:auto;page-break-after:auto}
  body.bsf-report-print .bsf-market-break{display:none!important}
  body.bsf-report-print .bsf-page>header,body.bsf-report-print .bsf-hotel-head{padding:0 0 .05in!important;margin:0 0 .05in!important;border-bottom:0!important}
  body.bsf-report-print .bsf-hotel-head h2{font-size:17px!important;color:#111!important}
  body.bsf-report-print .bsf-hotel-head p{font-size:10.5px!important;color:#111!important}
  body.bsf-report-print .bsf-pill{display:none!important}
  body.bsf-report-print .bsf-perf{font-size:9px!important;width:100%!important;table-layout:fixed!important;margin:0!important}
  body.bsf-report-print .bsf-perf th{font-size:8.2px!important;line-height:1.12!important;padding:3.4px 2px!important;background:#fffeb0!important;color:#1d30d6!important;border:.5px solid #7f8ee8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.bsf-report-print .bsf-perf td{font-size:8.6px!important;line-height:1.2!important;padding:3.6px 2px!important;border-bottom:.5px solid #ccc!important;color:#222!important;white-space:normal!important}
  body.bsf-report-print .bsf-perf td:first-child{background:#fff!important;color:#111!important}
  body.bsf-report-print .bsf-summary-blocks{grid-template-columns:repeat(5,1fr)!important;margin-top:.04in!important;border-color:#aaa!important;break-inside:avoid}
  body.bsf-report-print .bsf-summary-blocks div{padding:5px 7px!important;border-color:#aaa!important}
  body.bsf-report-print .bsf-summary-blocks h4{font-size:9.5px!important;color:#1d30d6!important;margin-bottom:2px!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.bsf-report-print .bsf-summary-blocks p{font-size:8.4px!important;line-height:1.28!important;margin:2px 0!important;gap:6px!important}
  body.bsf-report-print .bsf-toc-grid{column-count:4!important;font-size:8px!important}
}

/* Source popup: warehouse query leads, local cache copy in a drawer. */
.mr-source-note{font-size:12px;line-height:1.5;color:var(--tx2);margin:0 0 11px}
.mr-source-drawer{margin-top:12px;border:1px solid var(--bdr);border-radius:7px;background:var(--bg2)}
.mr-source-drawer>summary{cursor:pointer;padding:9px 12px;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--tx3);list-style:none}
.mr-source-drawer>summary::-webkit-details-marker{display:none}
.mr-source-drawer>summary:before{content:"▸";display:inline-block;margin-right:7px;transition:transform .15s}
.mr-source-drawer[open]>summary:before{transform:rotate(90deg)}
.mr-source-drawer>summary:hover{color:var(--gold)}
.mr-source-drawer .mr-source-meta{padding:0 12px;margin-bottom:9px}
.mr-source-drawer .mr-source-query{margin:0 12px 12px;background:var(--bg)}

/* ══════════════════════════════════════════════════════════════════
   PHONES
   The reports already stack their panels at 1200px, but everything
   *inside* a panel kept its desktop column count, so KPI bands, scope
   grids and modals ran off the side of a phone. Wide content scrolls
   inside its own panel rather than dragging the page sideways with it.
   ══════════════════════════════════════════════════════════════════ */
@media(max-width:760px){
  .rp-top{flex-direction:column;align-items:flex-start;gap:8px}
  .rp-panel-body{padding:11px 12px}
  .rp-panel-hd{flex-wrap:wrap;padding:11px 12px 9px}
  .rp-panel-tools{margin-left:0;flex-wrap:wrap}

  /* A table or chart wider than the phone scrolls inside its panel. */
  .rp-panel{max-width:100%}
  .rp-panel-body>table,
  .rp-panel-body>.rp-scroll{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}

  /* Monthly report */
  .mr-scope-grid,.mr-summary-grid,.mr-cover-meta,.mr-modal-kpis{grid-template-columns:1fr!important}
  .mr-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px;padding:10px}
  .mr-visual-grid,.mr-visual-grid-2{grid-template-columns:1fr!important}
  .mr-summary-grid{padding:10px;gap:10px}
  .mr-table{font-size:11px}
  .mr-table-wrap,.mr-detail-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .mr-histogram{grid-template-columns:repeat(3,minmax(0,1fr));height:140px}

  /* Blue Sheets feed */
  .bsf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .bsf-modal-grid{grid-template-columns:1fr!important}
  .bsf-page{padding:12px}
  .bsf-perf{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}

  /* Modals become bottom sheets rather than a fixed-width card. */
  .mr-modal-backdrop,.bsf-modal-backdrop{padding:0;align-items:flex-end}
  .mr-modal,.bsf-modal{max-width:100%!important;width:100%!important;
    max-height:92vh!important;border-radius:14px 14px 0 0!important}
  .mr-modal-body{padding:12px 14px}
  .mr-source-query{font-size:10.5px}
  .mr-source-meta{grid-template-columns:1fr;gap:2px 0}

  /* Report menu inside the mega panel */
  .mega-body{padding:12px 14px 16px}
}

/* Copyable query block (RC.queryBlock) — used by every Source popup. */
.rc-qwrap{position:relative}
.rc-copy{
  position:absolute;top:7px;right:7px;z-index:2;
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 8px;border:1px solid var(--bdr2);border-radius:6px;
  background:var(--bg);color:var(--tx2);
  font-family:var(--f);font-size:10px;font-weight:800;letter-spacing:.5px;
  text-transform:uppercase;line-height:1;cursor:pointer;
  opacity:.55;transition:opacity .14s,color .14s,border-color .14s,background .14s;
}
.rc-qwrap:hover .rc-copy{opacity:1}
.rc-copy:hover{color:var(--gold);border-color:var(--gold-bd);background:var(--gold-bg)}
.rc-copy:focus-visible{opacity:1;outline:2px solid var(--gold-bd);outline-offset:1px}
.rc-copy.rc-copy-done{opacity:1;color:var(--green);border-color:var(--green);background:var(--green-bg)}
/* Keep the button clear of the first line of SQL. */
.rc-qwrap>pre{padding-right:78px}
@media(max-width:760px){
  .rc-copy{opacity:1;top:5px;right:5px;padding:3px 7px}
  .rc-qwrap>pre{padding-right:70px}
}
@media print{.rc-copy{display:none!important}.rc-qwrap>pre{padding-right:11px!important}}

/* Blue Sheets Feed source popup — same shape as the other two. */
.bsf-source-body{padding:14px 16px;overflow:auto;max-height:70vh}
.bsf-source-meta{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;font-size:12px;margin-bottom:11px}
.bsf-source-meta b{color:var(--tx3);font-weight:800;font-size:10px;letter-spacing:.5px;text-transform:uppercase;align-self:center}
.bsf-source-note{font-size:12px;line-height:1.5;color:var(--tx2);margin:0 0 12px}
.bsf-source-query{margin:0;padding:11px 12px;border:1px solid var(--bdr);border-radius:7px;background:var(--bg2);overflow:auto;font-size:11.5px;line-height:1.55;white-space:pre}
.bsf-source-drawer{margin-top:12px;border:1px solid var(--bdr);border-radius:7px;background:var(--bg2)}
.bsf-source-drawer>summary{cursor:pointer;padding:9px 12px;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--tx3);list-style:none}
.bsf-source-drawer>summary::-webkit-details-marker{display:none}
.bsf-source-drawer>summary:before{content:"▸";display:inline-block;margin-right:7px;transition:transform .15s}
.bsf-source-drawer[open]>summary:before{transform:rotate(90deg)}
.bsf-source-drawer>summary:hover{color:var(--gold)}
.bsf-source-drawer .bsf-source-meta{padding:0 12px;margin-bottom:9px}
.bsf-source-drawer .bsf-source-query{margin:0 12px 12px;background:var(--bg)}
@media(max-width:760px){.bsf-source-meta{grid-template-columns:1fr;gap:2px 0}.bsf-source-query{font-size:10.5px}}
