/* Recovered from the last working Metric Studio stylesheet.
   Report toolbar + precise grids + consultant spotlight (desktop, mobile and print).
   Kept separate so chart styling cannot accidentally replace these rules again. */
/* Report builder toolbar: keep editing essentials visible, move secondary actions into one dropdown. */
.report-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;width:auto}
.report-toolbar-view,.report-toolbar-main,.report-toolbar-controls{display:flex;align-items:center;gap:6px;min-width:0}
.report-toolbar-view{flex-shrink:0}
.report-toolbar-main{flex-shrink:0}
.report-toolbar-controls{flex-shrink:0}
.report-toolbar .report-toolbar-add{background:#eef2ff;border-color:#c7d2fe;color:#4338ca;font-weight:650}
.report-toolbar .report-toolbar-add:hover{background:#e0e7ff;border-color:#a5b4fc}
.report-overflow{position:relative;flex:none}
.report-overflow>summary{list-style:none;user-select:none}
.report-overflow>summary::-webkit-details-marker{display:none}
.top-actions .report-overflow-trigger{display:inline-flex;align-items:center;gap:6px;padding:7px 10px}
.report-overflow-trigger .report-overflow-chevron{width:12px;height:12px;color:#64748b;transition:transform .15s}
.report-overflow[open] .report-overflow-trigger{background:#f1f5f9;border-color:#cbd5e1}
.report-overflow[open] .report-overflow-chevron{transform:rotate(180deg)}
.report-overflow-menu{position:absolute;top:calc(100% + 9px);right:0;z-index:55;min-width:245px;max-width:calc(100vw - 24px);padding:7px;background:#fff;border:1px solid #dce3ee;border-radius:12px;box-shadow:0 16px 48px rgba(15,23,42,.18)}
.report-overflow-group+.report-overflow-group{border-top:1px solid #e8edf4;margin-top:5px;padding-top:5px}
.report-overflow-heading{padding:7px 10px 5px;color:#64748b;font-size:10px;font-weight:700;letter-spacing:.045em;text-transform:uppercase}
.top-actions .report-overflow-menu .report-overflow-item{display:flex;width:100%;justify-content:flex-start;gap:10px;padding:9px 10px;min-height:36px;border:0;border-radius:7px;background:transparent;box-shadow:none;text-align:left;color:#334155;font-size:12px;font-weight:500}
.top-actions .report-overflow-menu .report-overflow-item:hover:not(:disabled){background:#f1f5ff;color:#4338ca}
.top-actions .report-overflow-menu .report-overflow-item:disabled{opacity:.4}
@media(min-width:768px) and (max-width:1180px){
  .topbar:has(.report-toolbar){height:auto;min-height:64px;flex-wrap:wrap}
  .topbar:has(.report-toolbar) .top-actions{width:100%;justify-content:flex-end;margin-left:0}
  .report-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 9px;width:100%}
  .report-toolbar-view{grid-column:1;grid-row:1}
  .report-toolbar-main{grid-column:1/-1;grid-row:2;justify-content:flex-end}
  .report-toolbar-controls{grid-column:2;grid-row:1}
}
@media(max-width:767px){
  .topbar .top-actions:has(.report-toolbar){overflow:visible;margin-left:0;min-width:0}
  .report-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 6px;justify-content:stretch;width:100%}
  .report-toolbar-view{grid-column:1;grid-row:1;gap:5px;overflow:hidden}
  .report-toolbar-view .date-button{min-width:0;max-width:150px;overflow:hidden}
  .report-toolbar-view .date-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .report-toolbar-controls{grid-column:2;grid-row:1;gap:5px}
  .report-toolbar-main{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%}
  .report-toolbar-main[data-toolbar-layout="pdf"]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .top-actions .report-toolbar-main .btn{min-width:0;min-height:39px;width:100%;padding:7px 5px;font-size:10px;line-height:1.2;white-space:normal}
  .report-toolbar-main .btn .icon{width:14px;height:14px}
  .top-actions .report-overflow-trigger,.top-actions .report-toolbar-save{width:36px;height:36px;min-height:36px;padding:6px;flex:none}
  .report-overflow-trigger span,.report-overflow-trigger .report-overflow-chevron,.report-toolbar-save span{display:none}
  .report-overflow-menu{right:0;min-width:245px}
}
@media(max-width:420px){
  .report-toolbar-view .report-view-toggle button{padding:0 6px}
  .report-toolbar-view .report-view-toggle button span{display:none}
  .report-toolbar-view .date-button{max-width:170px}
  .report-toolbar-main .btn .icon{width:13px;height:13px}
}

/* 2026-10-13: precise, collision-aware placement within every report/PDF grid. */
.report-grid,.pdf-page-grid{position:relative}
.report-grid>.widget[data-grid-positioned="true"]{
  grid-column:var(--grid-x) / span var(--width);
  grid-row:var(--grid-y) / span var(--height);
}
.pdf-page-grid>.pdf-render-widget[data-grid-positioned="true"]{
  grid-column:var(--grid-x) / span var(--width)!important;
  grid-row:var(--grid-y) / span var(--height)!important;
}
.widget-heading[draggable="true"]{cursor:grab;user-select:none}
.widget-heading[draggable="true"]:active,.drag-handle:active{cursor:grabbing}
.pdf-editor-widget .pdf-hidden-chrome-grip{position:absolute;top:4px;right:6px;z-index:14;padding:3px;background:#fff;border:1px solid #c7d2fe;border-radius:6px;opacity:0;transition:opacity .15s}
.pdf-editor-widget:hover .pdf-hidden-chrome-grip,.pdf-editor-widget:focus-within .pdf-hidden-chrome-grip{opacity:1}
/* At 48 columns a 20px gutter would consume nearly the entire report width. */
.styled-report-section .report-grid[style*="--columns:16"]{column-gap:12px}
.styled-report-section .report-grid[style*="--columns:24"]{column-gap:7px}
.styled-report-section .report-grid[style*="--columns:32"]{column-gap:4px}
.styled-report-section .report-grid[style*="--columns:48"]{column-gap:2px}
.styled-report-section .section-nested-grid[style*="--nested-columns:24"]{column-gap:7px}
.styled-report-section .section-nested-grid[style*="--nested-columns:32"]{column-gap:4px}
.styled-report-section .section-nested-grid[style*="--nested-columns:48"]{column-gap:2px}
@media(min-width:768px){
  /* No page-wide padding on dragstart: resizing every grid here used to move all
     later sections underneath the pointer and broke dragging below grid 1. */
  body.precise-grid-dragging .report-grid,body.precise-grid-dragging .pdf-editor-page .pdf-page-grid{outline:1px dashed rgba(99,102,241,.32);outline-offset:2px}
  /* Only the hovered report grid offers extra empty rows; other grids stay put. */
  body.precise-grid-dragging .report-grid.precise-grid-hover{min-height:240px;padding-bottom:110px;outline-color:rgba(99,102,241,.8)}
}
/* Empty sections must be real drop targets, not zero-height grid containers. */
.report-grid-empty{grid-column:1/-1;grid-row:span 3;min-height:84px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-size:10px}
@media print{.report-grid-empty{display:none!important}}
.precise-placement-overlay{
  position:absolute;inset:0;z-index:21;pointer-events:none;
  background-image:linear-gradient(to right,rgba(99,102,241,.19) 1px,transparent 1px),linear-gradient(to bottom,rgba(99,102,241,.15) 1px,transparent 1px);
  background-size:var(--precise-step-x,40px) var(--precise-step-y,52px);
  background-position:0 0;
}
.precise-placement-ghost{
  position:absolute;box-sizing:border-box;border:2px solid #6366f1;border-radius:8px;
  background:rgba(99,102,241,.16);box-shadow:0 0 0 1px rgba(99,102,241,.08),0 8px 25px rgba(49,46,129,.10);
  transition:left .055s ease,top .055s ease,width .055s ease;
}
.precise-placement-label{
  position:absolute;left:5px;top:5px;padding:5px 8px;border-radius:5px;white-space:nowrap;
  font:600 11px/1.3 system-ui,sans-serif;background:#4338ca;color:#fff;letter-spacing:.01em;
  box-shadow:0 2px 8px rgba(0,0,0,.13);
}
.precise-placement-ghost.precise-placement-invalid{border-color:#e11d48;background:rgba(244,63,94,.18);box-shadow:0 0 0 1px rgba(225,29,72,.11)}
.precise-placement-invalid .precise-placement-label{background:#be123c}
.pdf-page-grid .precise-placement-ghost{border-radius:4px}
.pdf-page-grid .precise-placement-label{font-size:10px;padding:3px 5px}
@media(max-width:767px){
  /* Shared links and mobile report layouts remain one-column cards, in authored order. */
  .report-grid>.widget[data-grid-positioned="true"]{grid-column:auto!important;grid-row:auto!important}
  .widget-heading[draggable="true"]{cursor:default}
}
@media print{
  .precise-placement-overlay,.pdf-hidden-chrome-grip{display:none!important}
}

/* Consultant spotlight widget ------------------------------------------------
   1920px is the design reference, but every size follows the WIDGET width.
   Container queries keep half-width report columns and PDF panels responsive
   even on very large monitors. Only the consultant widget is affected. */
.widget.type-consultant_spotlight{container:consultant-profile / inline-size}
.widget.type-consultant_spotlight .widget-body{padding:0;overflow:auto;background:transparent;align-items:stretch}
.widget.type-consultant_spotlight.chrome-hidden{background:transparent;border:none;box-shadow:none}
.widget.type-consultant_spotlight .widget-chrome-tools{position:absolute;top:10px;right:10px;z-index:6;background:rgba(255,255,255,.9);backdrop-filter:blur(4px);border-radius:999px;padding:4px 6px;box-shadow:0 4px 18px rgba(15,23,42,.12)}
.consultant-spotlight{
  --consultant-gap:clamp(16px,1.85cqi,44px);
  position:relative;isolation:isolate;display:grid;width:100%;min-width:0;min-height:100%;
  grid-template-columns:minmax(0,0.85fr) minmax(0,1.25fr) minmax(0,1.25fr);
  gap:var(--consultant-gap);align-items:center;
  padding:clamp(22px,2.45cqi,64px);
  background:var(--consultant-bg,#f4f4f4);overflow:hidden;
}
/* The SVG fills its layer all the way to the outer edge, NOT the padded grid. */
.consultant-spotlight-line{position:absolute;inset:0 auto 0 0;width:63%;height:100%;min-width:0;color:var(--consultant-line,#63c5bf);pointer-events:none;z-index:0}
.consultant-spotlight-line svg{display:block;width:100%;height:100%;max-width:none;max-height:none}
.consultant-spotlight-line svg [stroke]:not([stroke="none"]){stroke:currentColor!important}
.consultant-spotlight-line svg [fill]:not([fill="none"]){fill:currentColor!important;opacity:.18}
.consultant-spotlight-visual,.consultant-spotlight-copy{position:relative;z-index:1;min-width:0}
.consultant-spotlight-visual{
  grid-column:2;display:flex;align-items:flex-end;justify-content:center;
  width:100%;min-width:0;min-height:clamp(330px,34cqi,790px);
}
.consultant-spotlight-circle{
  position:absolute;left:50%;top:57%;width:clamp(240px,25cqi,580px);aspect-ratio:1;
  max-width:none;transform:translate(-50%,-50%);border-radius:50%;
  background:var(--consultant-circle,#63c5bf);
}
/* Flex centering and a centered transform origin prevent scaling from changing X. */
.consultant-spotlight-person{
  position:relative;display:block;flex:0 1 auto;margin-inline:auto;
  max-width:min(100%,clamp(245px,23cqi,525px));max-height:clamp(310px,35cqi,780px);
  width:auto;height:auto;object-fit:contain;
  transform:translateY(var(--consultant-image-offset-y,0px)) scale(var(--consultant-image-scale,1));
  transform-origin:center bottom;pointer-events:none;
}
.consultant-spotlight-copy{
  grid-column:3;display:flex;flex-direction:column;gap:clamp(12px,1.25cqi,26px);
  align-self:center;max-width:none;overflow-wrap:break-word;
}
.consultant-spotlight-teaser{font-size:clamp(10px,.74cqi,14px);letter-spacing:.29em;text-transform:uppercase;color:var(--consultant-teaser,#8ed4cf);font-weight:700}
.consultant-spotlight-title{
  margin:0;font-size:clamp(29px,3.35cqi,82px);line-height:1.04;
  font-weight:800;letter-spacing:-.045em;color:var(--consultant-headline,#12163d);
  text-wrap:balance;overflow-wrap:break-word;
}
.consultant-spotlight-description{margin:0;color:var(--consultant-text,#61697a);font-size:clamp(13px,.94cqi,19px);line-height:1.65;max-width:56ch}
.consultant-spotlight-payoffs{display:flex;flex-direction:column;gap:0;margin-top:clamp(2px,.5cqi,10px);border-top:1px solid rgba(15,23,42,.09)}
.consultant-spotlight-payoff{
  display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1fr);gap:clamp(12px,1.4cqi,28px);
  align-items:center;padding:clamp(14px,1.25cqi,26px) 0;border-bottom:1px solid rgba(15,23,42,.09);
}
.consultant-spotlight-payoff-key{display:flex;flex-direction:column;gap:4px;min-width:0}
.consultant-spotlight-payoff-key strong{font-size:clamp(29px,2.65cqi,58px);line-height:1;color:var(--consultant-headline,#12163d);letter-spacing:-.04em}
.consultant-spotlight-payoff-key span{font-size:clamp(12px,.9cqi,17px);line-height:1.35;color:var(--consultant-text,#61697a);font-weight:600}
.consultant-spotlight-payoff-text{min-width:0;font-size:clamp(12px,.9cqi,17px);line-height:1.6;color:var(--consultant-text,#61697a)}
.consultant-spotlight-button{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-height:44px;padding:0 clamp(16px,1.2cqi,25px);border-radius:2px;background:var(--consultant-button,#12163d);color:var(--consultant-button-text,#fff);font-size:clamp(12px,.8cqi,16px);font-weight:700;text-decoration:none;transition:transform .18s ease,opacity .18s ease}
.consultant-spotlight-button:hover{opacity:.94;transform:translateY(-1px)}
.consultant-payoff-box{margin-top:14px}
.consultant-payoff-stack{display:flex;flex-direction:column;gap:12px;margin:10px 0 14px}
.consultant-payoff-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;border:1px solid var(--border,#d9dde7);border-radius:12px;background:#fff}
.consultant-payoff-index{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#eef2ff;color:#4338ca;font-weight:700;font-size:12px}
.consultant-preview-thumb img{max-height:200px;object-fit:contain}
/* Compact desktop and half-width dashboard tiles. */
@container consultant-profile (max-width:1239px){
  .consultant-spotlight{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(18px,3cqi,42px);padding:clamp(22px,3cqi,40px)}
  .consultant-spotlight-visual{grid-column:1;min-height:clamp(320px,40cqi,510px)}
  .consultant-spotlight-copy{grid-column:2}
  .consultant-spotlight-line{width:68%}
  .consultant-spotlight-circle{width:clamp(250px,32cqi,410px)}
  .consultant-spotlight-person{max-width:min(94%,clamp(235px,31cqi,405px));max-height:clamp(300px,43cqi,510px)}
  .consultant-spotlight-title{font-size:clamp(29px,4cqi,52px)}
  .consultant-spotlight-payoff{grid-template-columns:minmax(105px,.65fr) minmax(0,1fr)}
}
/* Stack based on actual widget width, regardless of window resolution. */
@container consultant-profile (max-width:820px){
  .consultant-spotlight{
    grid-template-columns:minmax(0,1fr);gap:clamp(18px,3cqi,30px);
    padding:clamp(22px,4cqi,40px);
  }
  .consultant-spotlight-line{display:none!important}
  .consultant-spotlight-visual{grid-column:1;grid-row:1;width:100%;max-width:540px;margin-inline:auto;min-height:clamp(270px,51cqi,400px)}
  .consultant-spotlight-circle{width:min(78%,clamp(230px,48cqi,370px));top:56%}
  .consultant-spotlight-person{max-width:min(80%,clamp(215px,43cqi,350px));max-height:clamp(260px,51cqi,420px)}
  .consultant-spotlight-copy{grid-column:1;grid-row:2;width:100%;max-width:670px;margin-inline:auto;gap:clamp(12px,2.5cqi,19px)}
  .consultant-spotlight-title{font-size:clamp(29px,5.35cqi,44px)}
  .consultant-spotlight-payoff{grid-template-columns:minmax(110px,.6fr) minmax(0,1fr);gap:clamp(12px,2.3cqi,22px)}
  .consultant-spotlight-payoff-key strong{font-size:clamp(30px,5cqi,43px)}
  .consultant-spotlight-description,.consultant-spotlight-payoff-text{font-size:clamp(13px,2.2cqi,16px)}
}
@container consultant-profile (max-width:520px){
  .consultant-spotlight{padding:clamp(18px,5cqi,26px);gap:17px}
  .consultant-spotlight-visual{min-height:clamp(250px,67cqi,335px)}
  .consultant-spotlight-circle{width:min(82%,clamp(215px,65cqi,320px))}
  .consultant-spotlight-person{max-width:min(83%,clamp(205px,61cqi,300px));max-height:clamp(245px,72cqi,335px)}
  .consultant-spotlight-title{font-size:clamp(28px,7cqi,36px)}
  .consultant-spotlight-payoff{grid-template-columns:minmax(0,1fr);gap:7px;padding:15px 0}
  .consultant-spotlight-payoff-key strong{font-size:clamp(30px,8cqi,40px)}
}
/* Fallback on browsers without container queries; mobile never shows the line. */
@media screen and (max-width:767px){
  .widget.type-consultant_spotlight .consultant-spotlight-line{display:none!important}
}
@media print{
  .consultant-spotlight{break-inside:avoid}
  .consultant-spotlight-button{color:var(--consultant-button-text,#fff)!important}
}

/* Consultant portrait scaling: editor-only slider + live thumbnail. */
.consultant-image-scale-field{display:flex;flex-direction:column;gap:11px;margin:16px 0;padding:17px 18px;border:1px solid var(--border,#d9dde7);border-radius:12px;background:var(--surface,#fff)}
.consultant-image-scale-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.consultant-image-scale-heading label{font-size:13px;font-weight:700;color:var(--text,#0f172a)}
.consultant-image-scale-heading strong{font-size:13px;min-width:48px;text-align:right;color:var(--primary,#4f46e5)}
.consultant-image-scale-inputs{display:flex;align-items:center;gap:16px}
.consultant-image-scale-inputs input[type=range]{flex:1;min-width:60px;accent-color:var(--primary,#4f46e5);cursor:pointer}
.consultant-image-scale-number{display:flex;align-items:center;gap:5px}
.consultant-image-scale-number input[type=number]{width:75px;min-height:38px;text-align:right}
.consultant-image-scale-number span{font-size:13px;font-weight:600;color:var(--text-muted,#64748b)}
.consultant-image-scale-field .form-note{margin:0}
.consultant-image-scale-preview{position:relative;display:flex;align-items:flex-end;justify-content:center;isolation:isolate;height:200px;overflow:hidden;border-radius:10px;background:#f8fafc}
.consultant-image-scale-preview-circle{position:absolute;z-index:-1;bottom:-55px;width:185px;height:185px;border-radius:50%}
.consultant-image-scale-preview img{display:block;position:relative;max-width:160px;max-height:175px;width:auto;height:auto;object-fit:contain;transform-origin:center bottom;pointer-events:none}

/* Separate portrait vertical alignment – preserves background circle and scales consistently in PDF. */
.consultant-image-offset-heading{margin-top:12px}
.consultant-image-offset-help{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.consultant-image-offset-help .form-note{flex:1 1 250px}
.consultant-image-offset-help button{white-space:nowrap}
