/* Weekly executive report (execreport.js). Uses the Dispatch tokens; the shared HTML file defines the same ones inline. */
.er{padding-bottom:40px;color:var(--ink)}
.er-loading{padding:36px 20px;text-align:center;color:var(--ink-soft);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}
.er-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.er-bar button,.er-bar select,.er-dialog button{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:9px;padding:8px 13px;font:inherit;font-weight:600;cursor:pointer}
.er-bar button:hover,.er-dialog button:hover{border-color:var(--green)}
.er-bar label{font-size:13px;color:var(--ink-soft);display:flex;gap:6px;align-items:center}
.er-nav{display:flex;gap:4px}
.er-grow{flex:1}
.er button.er-primary,.er-dialog button.er-primary{background:var(--green);border-color:var(--green);color:#fff;border-radius:11px;box-shadow:0 5px 14px -6px rgba(64,96,20,.7)}
.er-asof{margin:4px 0 12px;font-size:12px;color:var(--ink-soft)}
.er-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin:14px 0;box-shadow:var(--shadow)}
.er-card h2{font-family:var(--head);font-size:16px;margin:0 0 10px}
.er-card h2 small{font-weight:500;color:var(--ink-soft);font-size:12.5px;margin-left:6px}
.er-card h3{font-family:var(--head);font-size:13.5px;margin:16px 0 8px}
.er-dim{color:var(--ink-soft)}
.er-hint{font-size:12px;margin:6px 0 0}
.er-warn{padding:10px 12px;background:var(--amber-tint,#fff6e0);border:1px solid var(--amber-line,#f0d9a0);border-radius:var(--radius-sm);color:var(--amber-strong,#8a5b12);font-size:13px;margin:10px 0}

/* the spreadsheet */
.er-scroll{overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);max-width:100%;scroll-behavior:smooth}
.er-sheet{border-collapse:separate;border-spacing:0;font-size:13px;min-width:100%}
.er-sheet th,.er-sheet td{padding:7px 12px;border-bottom:1px solid var(--border);white-space:nowrap}
.er-sheet thead th{background:var(--surface);position:sticky;top:0;z-index:2}
.er-sheet thead tr:nth-child(2) th{top:51px}
.er-lbl{position:sticky;left:0;z-index:3;background:var(--surface);text-align:left;font-weight:600;min-width:190px;border-right:2px solid var(--border)}
.er-sheet thead .er-lbl{z-index:4;vertical-align:bottom;color:var(--ink-soft);font-size:12px}
.er-wk{text-align:center;border-left:2px solid var(--border);padding:0!important}
.er-wk button{all:unset;display:block;cursor:pointer;padding:7px 14px;font-weight:700;width:100%;box-sizing:border-box}
.er-wk button small{display:block;font-weight:500;font-size:10.5px;color:var(--ink-faint)}
.er-wk button i{font-style:normal;font-size:10px;background:var(--green-tint);color:var(--green);border-radius:8px;padding:1px 6px;margin-left:4px}
.er-wk.sel{background:var(--green-tint)}
.er-wk.cur button{color:var(--green)}
.er-wk.fut{opacity:.7}
.er-sub{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);text-align:right}
.er-sub.S{border-left:2px solid var(--border)}
.er-sub i{font-style:normal;color:var(--amber-strong,#8a5b12);cursor:help}
.er-sub.fut{opacity:.6}
.er-c{text-align:right;font-variant-numeric:tabular-nums}
.er-c.S{border-left:2px solid var(--border);color:var(--ink-soft)}
.er-sec th{background:var(--canvas,#f2f1ec);font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-faint)}
.er-sec td{background:var(--canvas,#f2f1ec)}
.er-sheet tbody tr:not(.er-sec):hover th,.er-sheet tbody tr:not(.er-sec):hover td{background:var(--green-tint)}
.er-c.good,.er-good{color:#3f7a1a;font-weight:700}
.er-c.warn,.er-warn-t{color:#8a5b12;font-weight:700}
.er-c.bad,.er-bad{color:var(--red,#a13b34);font-weight:700}
td.er-warn,.r.er-warn{color:#8a5b12;font-weight:700;background:none;border:0;padding:0 12px;margin:0}
.er-chartcard{padding:10px 14px}
.er-chartscroll{overflow:auto}
.er-legend{display:flex;gap:16px;font-size:12px;color:var(--ink-soft);margin-bottom:4px;flex-wrap:wrap}
.er-legend i,.er-chartscroll rect.s,.er-chartscroll rect.i,.er-chartscroll rect.l{display:inline-block}
.er-legend i{width:10px;height:10px;border-radius:2px;margin-right:5px}
.er-legend .s,.er-chartscroll rect.s{background:#b9c7a4;fill:#b9c7a4}
.er-legend .i,.er-chartscroll rect.i{background:#71a62b;fill:#71a62b}
.er-legend .l,.er-chartscroll rect.l{background:#f49c20;fill:#f49c20;opacity:.85}
.er-chartscroll text{font-size:10px;fill:var(--ink-soft)}
.er-chartscroll .g{stroke:var(--border);stroke-width:1}
.er-chartscroll .ax{fill:var(--ink-faint)}
.er-ch{cursor:pointer}
.er-ch:hover rect,.er-ch.sel rect{opacity:1;filter:brightness(.92)}
.er-ch.sel text{font-weight:700;fill:var(--green)}

/* selected week */
.er-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.er-kpi{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface)}
.er-kpi span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);font-weight:700}
.er-kpi b{display:block;font-size:21px;margin:2px 0;font-family:var(--head)}
.er-kpi small{color:var(--ink-soft);font-size:11.5px}
.er-kpi.er-good b{color:#3f7a1a}.er-kpi.er-warn-t b{color:#8a5b12}.er-kpi.er-bad b{color:var(--red,#a13b34)}
.er-tablewrap{overflow:auto;margin-top:12px}
.er-table{width:100%;border-collapse:collapse;font-size:13px}
.er-table th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);text-align:left;padding:7px 10px;border-bottom:2px solid var(--border);white-space:nowrap}
.er-table th.sortable{cursor:pointer}
.er-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}
.er-table .r{text-align:right;font-variant-numeric:tabular-nums}.er-table th.r{text-align:right}
.er-table small{display:block;color:var(--ink-faint);font-size:11px;font-weight:400}
.er-table td.r small{display:inline}
.er-prow{cursor:pointer}.er-prow:hover td,.er-prow.open td{background:var(--green-tint)}
.er-chip{display:inline-block;border-radius:10px;padding:2px 9px;font-size:11.5px;font-weight:600;background:var(--canvas,#f2f1ec);color:var(--ink-soft);white-space:nowrap}
.er-chip.ok{background:#edf4e3;color:#3f7a1a}.er-chip.add{background:#e7f0fb;color:#2c5d94}.er-chip.warn{background:#fff6e0;color:#8a5b12}.er-chip.bad{background:#faefed;color:#a13b34}.er-chip.dim{color:var(--ink-faint)}
.er-detail td{background:var(--canvas,#f2f1ec);padding:12px 16px}
.er-det{display:grid;grid-template-columns:minmax(260px,1.3fr) 1fr;gap:22px}
.er-det h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint)}
.er-det ul{margin:0;padding-left:18px;font-size:13px}
.er-mini{border-collapse:collapse;font-size:12.5px;width:100%}
.er-mini th,.er-mini td{padding:4px 8px;border-bottom:1px solid var(--border);text-align:left}.er-mini .r{text-align:right}
.er-pricehead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.er-target{font-size:13px;color:var(--ink-soft)}.er-target input{width:64px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;font:inherit;background:var(--surface);color:var(--ink)}
.er-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.er-list{list-style:none;margin:0;padding:0;font-size:13px}
.er-list li{padding:7px 0;border-bottom:1px solid var(--border)}.er-list li small{color:var(--ink-faint);margin-left:4px}.er-list li span{display:block;color:var(--ink-soft);font-size:12.5px}
.er-notes ul{margin:0;padding-left:18px;font-size:12.5px;color:var(--ink-soft)}

/* share dialog */
.er-modal{position:fixed;inset:0;background:rgba(20,22,18,.5);z-index:400;display:flex;align-items:center;justify-content:center;padding:16px}
.er-dialog{background:var(--surface);color:var(--ink);border-radius:var(--radius);padding:20px 22px;max-width:480px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.er-dialog h3{margin:0 0 8px;font-family:var(--head)}
.er-dialog label{display:block;font-size:12.5px;color:var(--ink-soft);margin:10px 0}
.er-dialog input,.er-dialog select{display:block;width:100%;box-sizing:border-box;margin-top:4px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;background:var(--surface);color:var(--ink)}
.er-dialog p{font-size:13px}
.er-dialog-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.er-standalone .no-print{display:none}

@media (max-width:760px){.er-det{grid-template-columns:1fr}.er-lbl{min-width:140px}}
@media print{
  @page{size:landscape;margin:.4in}
  .no-print,.er-modal{display:none!important}
  .er-scroll{overflow:visible;border:0;box-shadow:none}
  .er-sheet{font-size:10px}.er-sheet th,.er-sheet td{padding:3px 6px}
  .er-sheet thead th,.er-lbl{position:static}
  .er-card{break-inside:avoid;box-shadow:none}
  .er-kpi b{font-size:16px}
  .er-chartscroll{overflow:visible}
  .er-table{font-size:10.5px}
  .er-detail{display:none}
}

/* pricing scope */
.er-pricectl{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.er-seg{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden}
.er-seg button{border:0;background:var(--surface);color:var(--ink-soft);padding:6px 12px;font:inherit;font-weight:600;cursor:pointer}
.er-seg button.on{background:var(--green);color:#fff}

/* Present mode: the boardroom screen. Dark, quiet, generous spacing, one accent. Sizes scale with the screen (vw) so it reads from the back of a room. */
body.er-presenting{overflow:hidden}
.er-present{position:fixed;inset:0;z-index:300;overflow:auto;color:#f4f3ee;font-family:Montserrat,"Segoe UI",system-ui,-apple-system,sans-serif;font-size:clamp(13px,.88vw,19px);line-height:1.45;-webkit-font-smoothing:antialiased;
  background:radial-gradient(1200px 700px at 6% -12%,rgba(113,166,43,.17),transparent 60%),radial-gradient(900px 600px at 102% 0,rgba(70,110,160,.11),transparent 55%),#0a0c0b;
  --surface:#131614;--ink:#f4f3ee;--ink-soft:#b9b8b0;--ink-faint:#7f7f78;--border:rgba(255,255,255,.08);--canvas:#1a1d1a;--green-tint:rgba(113,166,43,.14);--green-line:rgba(113,166,43,.35);--shadow:none;--red:#ff7a6e}
.er-present *{box-sizing:border-box}
.pr{max-width:1960px;margin:0 auto;padding:1.6vw 2.4vw 2.4vw}

/* header */
.pr-top{display:flex;justify-content:space-between;align-items:center;gap:20px}
.pr-brand{display:flex;gap:.9em;align-items:center}
.pr-mark{width:.4em;height:2.7em;border-radius:3px;background:linear-gradient(#b4e268,#6fa52a)}
.pr-brand small{display:block;text-transform:uppercase;letter-spacing:.22em;font-size:.66em;color:#8d8d86;font-weight:600}
.pr-brand h1{margin:.1em 0 0;font-size:1.35em;font-weight:600;letter-spacing:-.01em}
.pr-actions{display:flex;gap:.6em}
.pr-actions button{background:rgba(255,255,255,.04);color:#d8d7cf;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.55em 1em;font:inherit;font-size:.85em;font-weight:600;cursor:pointer}
.pr-actions button:hover{border-color:rgba(255,255,255,.3);color:#fff}
.pr-actions kbd{font:inherit;font-size:.8em;opacity:.55;margin-left:.4em;border:1px solid rgba(255,255,255,.2);border-radius:5px;padding:0 .35em}

/* week */
.pr-week{display:flex;align-items:center;gap:1.2vw;flex-wrap:wrap;margin:1.5vw 0 .8vw}
.pr-week h2{margin:0;font-size:clamp(30px,3vw,62px);font-weight:600;letter-spacing:-.025em;line-height:1.05}
.pr-week p{margin:.4em 0 0;color:#b9b8b0;font-size:1.05em;display:flex;gap:.7em;align-items:center}
.pr-tag{font-style:normal;font-size:.7em;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3em .85em;border-radius:99px;background:rgba(255,255,255,.07);color:#c9c8c0}
.pr-tag.cur{background:rgba(113,166,43,.22);color:#b4e268}.pr-tag.fut{background:rgba(120,170,240,.16);color:#9cc4f5}
.pr-nav{width:2.4em;height:2.4em;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);color:#f4f3ee;font-size:1.4em;line-height:1;cursor:pointer;padding:0 0 .12em}
.pr-nav:hover:not(:disabled){background:#71a62b;border-color:#71a62b}.pr-nav:disabled{opacity:.2;cursor:default}
.pr-strip{flex-basis:100%;display:flex;gap:.2em;overflow-x:auto;padding:.9em 0 .3em;border-top:1px solid var(--border);scrollbar-width:none}
.pr-strip::-webkit-scrollbar{display:none}
.pr-strip button{flex:0 0 auto;background:none;border:0;color:#8d8d86;padding:.4em .9em;font:inherit;font-weight:600;font-size:.88em;border-radius:99px;cursor:pointer;position:relative}
.pr-strip button:hover{color:#f4f3ee}.pr-strip button.fut{font-style:italic}
.pr-strip button.cur::after{content:"";position:absolute;left:50%;bottom:-.15em;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:#9ad04a}
.pr-strip button.on{background:#f4f3ee;color:#0a0c0b}.pr-strip button.on.cur::after{background:#4b7a1d}

/* cards and labels */
.pr-card{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid var(--border);border-radius:20px;padding:1.3vw 1.5vw;box-shadow:0 24px 50px -32px rgba(0,0,0,.9)}
.pr-card+.pr-card{margin-top:1vw}
.pr-sec span{display:block;text-transform:uppercase;letter-spacing:.2em;font-size:.64em;color:#7f7f78;font-weight:700}
.pr-sec h2{margin:.25em 0 .8em;font-size:1.25em;font-weight:600;letter-spacing:-.01em}
.pr-lbl{text-transform:uppercase;letter-spacing:.18em;font-size:.66em;color:#8d8d86;font-weight:700}
.pr-pill{display:inline-flex;align-items:center;gap:.35em;font-size:.78em;font-weight:700;padding:.28em .75em;border-radius:99px;background:rgba(255,255,255,.07);color:#c9c8c0}
.pr-pill b{font-size:.75em}.pr-pill i{font-style:normal;font-weight:500;opacity:.7}
.pr-pill.good{background:rgba(154,208,74,.14);color:#b4e268}.pr-pill.bad{background:rgba(255,122,110,.14);color:#ff9a8f}

/* hero */
.pr-hero{display:grid;grid-template-columns:1.5fr 1fr 1.1fr;gap:1vw;margin:.9vw 0}
.pr-hero .pr-card+.pr-card{margin-top:0}
.pr-big{font-size:clamp(40px,4.6vw,96px);font-weight:600;letter-spacing:-.035em;line-height:1.02;margin:.15em 0 .25em;font-variant-numeric:tabular-nums}
.pr-big.sm{font-size:clamp(34px,3.6vw,76px)}
.pr-sub{margin:.8em 0 0;color:#b9b8b0;font-size:.92em}
.pr-attain{margin-top:1.2em}
.pr-bar{height:.55em;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.pr-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#6fa52a,#b4e268)}
.pr-attain p{margin:.6em 0 0;color:#b9b8b0;font-size:.88em}.pr-attain b{color:#f4f3ee}
.pr-h2{text-align:center}
.pr-gwrap{position:relative;width:min(12.5vw,250px);margin:.5em auto .4em}
.pr-gauge{width:100%;display:block}
.pr-gc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pr-gc b{font-size:clamp(26px,2.6vw,54px);font-weight:600;letter-spacing:-.03em}
.pr-gc small{color:#8d8d86;font-size:.78em}
.pr-split{display:flex;height:.55em;border-radius:99px;overflow:hidden;background:rgba(113,166,43,.5);margin-top:1.2em}
.pr-split i.l{display:block;background:#f2b84b}

/* secondary stats */
.pr-stats{display:grid;grid-template-columns:repeat(5,1fr);padding:0;margin-bottom:1vw}
.pr-stat{padding:1.1vw 1.5vw;border-left:1px solid var(--border)}.pr-stat:first-child{border-left:0}
.pr-stat>span{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:.62em;color:#8d8d86;font-weight:700}
.pr-stat b{display:block;font-size:clamp(22px,2vw,42px);font-weight:600;letter-spacing:-.025em;margin:.15em 0;font-variant-numeric:tabular-nums}
.pr-stat small{display:block;color:#b9b8b0;font-size:.82em;min-height:1.2em}
.pr-stat .pr-pill{margin-top:.55em}

/* chart and comparison */
.pr-mid{display:grid;grid-template-columns:1.25fr 1fr;gap:1vw;margin-bottom:1vw}
.pr-mid .pr-card+.pr-card{margin-top:0}
.pr-legend{display:flex;gap:1.5em;font-size:.78em;color:#b9b8b0;margin:-.4em 0 .5em}
.pr-legend i{display:inline-block;width:.8em;height:.8em;border-radius:3px;margin-right:.5em;vertical-align:-.1em}
.pr-legend .s{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3)}.pr-legend .i{background:linear-gradient(#b4e268,#6fa52a)}.pr-legend .l{background:#f2b84b;border-radius:50%}
.pr-chartsvg{width:100%;height:auto;display:block}
.pr-chartsvg .gl{stroke:rgba(255,255,255,.07)}.pr-chartsvg .ax{fill:#7f7f78;font-size:12px}
.pr-chartsvg .b-s{fill:rgba(255,255,255,.1);stroke:rgba(255,255,255,.22);stroke-width:1}
.pr-chartsvg .b-s.sel{fill:rgba(255,255,255,.2);stroke:rgba(255,255,255,.42)}.pr-chartsvg .b-s.fut{stroke-dasharray:3 3}
.pr-chartsvg .b-i{fill:url(#prG);opacity:.5}.pr-chartsvg .b-i.sel{opacity:1}
.pr-chartsvg .selbg{fill:rgba(255,255,255,.05)}
.pr-chartsvg .xl{fill:#8d8d86;font-size:13px}.pr-chartsvg .xl.sel{fill:#f4f3ee;font-weight:700}
.pr-chartsvg .vl{fill:#f4f3ee;font-size:14px;font-weight:700}.pr-chartsvg .vl.m{fill:#b9b8b0;font-weight:600}
.pr-chartsvg .cur{fill:#9ad04a}
.pr-chartsvg .ll{fill:none;stroke:#f2b84b;stroke-width:2.5;stroke-linejoin:round}.pr-chartsvg .ld{fill:#0a0c0b;stroke:#f2b84b;stroke-width:2.5}
.pr-sheet .er-scroll{border:0;background:none;box-shadow:none;overflow:visible;border-radius:0}
.er-present .er-sheet{width:100%;font-size:.95em;border-collapse:collapse}
.er-present .er-sheet th,.er-present .er-sheet td{padding:.5em .8em;border-bottom:1px solid rgba(255,255,255,.06);background:none}
.er-present .er-sheet thead th,.er-present .er-lbl{background:none;position:static;border-right:0;color:#d8d7cf}
.er-present .er-sheet thead .er-lbl{color:#7f7f78;font-size:.75em}
.er-present .er-wk{border-left:1px solid rgba(255,255,255,.08)}
.er-present .er-wk button{color:#f4f3ee;font-weight:600}.er-present .er-wk button small{color:#7f7f78}
.er-present .er-wk.sel{background:rgba(113,166,43,.12)}.er-present .er-wk button i{background:rgba(113,166,43,.22);color:#b4e268}
.er-present .er-sub{color:#7f7f78}.er-present .er-sub.S,.er-present .er-c.S{border-left:1px solid rgba(255,255,255,.08)}
.er-present .er-c{color:#f4f3ee}.er-present .er-c.S{color:#b9b8b0}
.er-present .er-c.good{color:#9ad04a}.er-present .er-c.warn{color:#f2b84b}.er-present .er-c.bad{color:#ff7a6e}
.er-present .er-sec th,.er-present .er-sec td{background:none;color:#7f7f78;font-size:.66em;letter-spacing:.16em;padding-top:1em}
.er-present .er-sheet tbody tr:not(.er-sec):hover th,.er-present .er-sheet tbody tr:not(.er-sec):hover td{background:rgba(255,255,255,.03)}

/* tables */
.pr-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.pr-table th{font-size:.62em;text-transform:uppercase;letter-spacing:.14em;color:#7f7f78;font-weight:700;text-align:left;padding:.6em .8em;border-bottom:1px solid rgba(255,255,255,.1);white-space:nowrap}
.pr-table th small{text-transform:none;letter-spacing:0;font-weight:500;opacity:.8;display:inline}
.pr-table td{padding:.78em .8em;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:middle}
.pr-table tbody tr:last-child td{border-bottom:0}
.pr-table .l{text-align:left}.pr-table .r,.pr-table th.r{text-align:right}
.pr-table td b{font-weight:600}
.pr-table td small{display:block;color:#8d8d86;font-size:.8em;margin-top:.15em}
.pr-table td.r small{display:inline}
.pr-st{display:inline-flex;align-items:center;gap:.5em;font-weight:600;font-size:.9em}
.pr-st i{width:.6em;height:.6em;border-radius:50%;background:#8d8d86}
.pr-st.ok i{background:#9ad04a}.pr-st.go i{background:#7fb2f0}.pr-st.bad i{background:#ff7a6e}
td small.pr-plan{color:#f2b84b}
.pr-dots{display:inline-flex;gap:.28em;align-items:center}
.pr-dots i{width:.7em;height:.7em;border-radius:50%;border:1.5px solid rgba(255,255,255,.35)}
.pr-dots i.on{background:#9ad04a;border-color:#9ad04a}.pr-dots em{font-style:normal;font-size:.8em;color:#8d8d86}
.pr-table td.m{white-space:nowrap}
.pr-mbar{display:inline-block;position:relative;width:7em;height:.45em;border-radius:99px;background:rgba(255,255,255,.09);vertical-align:middle;margin-right:.7em}
.pr-mbar i{display:block;height:100%;border-radius:99px}
.pr-mbar u{position:absolute;top:-.3em;bottom:-.3em;width:2px;background:#f4f3ee;opacity:.75;border-radius:1px}
.pr-table td.m b{font-size:.95em;font-weight:700}
.pr-dim{color:#5f5f59}
.pr-empty{color:#8d8d86;padding:.4em 0;margin:0}
.pr-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(18em,1fr));gap:1.6vw;margin-top:1.2em;padding-top:1.1em;border-top:1px solid var(--border)}
.pr-notes h3{margin:0 0 .5em;font-size:.66em;text-transform:uppercase;letter-spacing:.16em;color:#8d8d86}
.pr-notes ul{list-style:none;margin:0;padding:0}
.pr-notes li{display:flex;justify-content:space-between;gap:1em;padding:.45em 0;border-bottom:1px solid rgba(255,255,255,.06)}
.pr-notes li small{display:block;color:#8d8d86;font-size:.8em}.pr-notes li span{font-weight:700}
.pr-notes p{margin:0;color:#b9b8b0;font-size:.9em}
.pr-alert{margin:.6em 0;padding:.8em 1.1em;background:rgba(242,184,75,.1);border:1px solid rgba(242,184,75,.3);border-radius:12px;color:#f2c978;font-size:.92em}
.pr-foot{display:flex;justify-content:space-between;gap:1em;margin-top:1.4vw;color:#6f6f69;font-size:.76em}
@media (max-width:1100px){.pr-hero{grid-template-columns:1fr}.pr-stats{grid-template-columns:repeat(2,1fr)}.pr-mid{grid-template-columns:1fr}}
@media print{.er-present{display:none!important}}
.er-present .pr-pill b{display:inline!important;font-size:.7em!important;font-weight:700!important;margin:0!important;letter-spacing:0!important;line-height:1!important}
.er-present .pr-pill{line-height:1.2;white-space:nowrap}

.pr-trend{width:100%;border-collapse:collapse;margin-top:1em;font-variant-numeric:tabular-nums;font-size:.86em}
.pr-trend th,.pr-trend td{padding:.5em .4em;text-align:right;border-top:1px solid rgba(255,255,255,.06);white-space:nowrap}
.pr-trend th:first-child,.pr-trend td:first-child{text-align:left;color:#8d8d86;font-weight:600;padding-left:0}
.pr-trend thead th{border-top:0;color:#8d8d86;font-weight:600;font-size:.85em}
.pr-trend td.sel,.pr-trend th.sel{background:rgba(255,255,255,.06);color:#f4f3ee;font-weight:700}
.pr-trend td.good{color:#9ad04a}.pr-trend td.warn{color:#f2b84b}.pr-trend td.bad{color:#ff7a6e}
.pr-trend .ghost{color:#5f5f59}

/* revenue by date (Zoho FSM), entries lists, dialogs */
.er-fsmdays{margin:14px 0 4px}
.er-fsmdays h3{margin:0 0 10px;font-family:var(--head)}.er-fsmdays h3 small{font-weight:500;font-size:.78em;color:var(--ink-soft);margin-left:6px}
.er-daybars{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end}
.er-daybar{display:flex;flex-direction:column;align-items:center;gap:6px;font-variant-numeric:tabular-nums}
.er-daybar b{font-size:13px;font-weight:700}.er-daybar span{font-size:11.5px;color:var(--ink-soft);white-space:nowrap}
.er-daybar i{display:flex;align-items:flex-end;width:100%;height:84px;background:var(--canvas);border-radius:8px;overflow:hidden}
.er-daybar u{display:block;width:100%;background:linear-gradient(#b4e268,#6fa52a);border-radius:6px 6px 0 0;min-height:0}
.er-daybar.fut{opacity:.55}
.er-wide{max-width:760px;max-height:90vh;overflow:auto}
.er-dialog h4{margin:16px 0 6px;font-family:var(--head);font-size:13px}
.er-tabs{display:flex;gap:6px;margin:8px 0 4px;border-bottom:1px solid var(--border)}
.er-tabs button{border:0;border-bottom:3px solid transparent;border-radius:0;background:none;color:var(--ink-soft);padding:8px 12px;margin-bottom:-1px}
.er-tabs button.on{color:var(--green);border-bottom-color:var(--green)}
.er-entries{list-style:none;margin:0;padding:0}
.er-entries li{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--border)}
.er-entries li small{display:block;color:var(--ink-soft);font-size:12px}.er-entries li .er-faint{color:var(--ink-faint)}
.er-fsm-pick{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}
.er-fsm-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 14px}
.er-dialog .er-tablewrap{max-height:190px}
.er-dialog .er-mini th,.er-dialog .er-mini td{font-size:11.5px;white-space:nowrap;padding:3px 8px}

/* present: next week, targets, FSM */
.pr-splitw{position:relative;margin-top:1.2em}.pr-splitw .pr-split{margin-top:0;background:rgba(255,255,255,.1)}
.pr-splitw u{position:absolute;top:-.3em;bottom:-.3em;width:2px;background:#f4f3ee;opacity:.8;border-radius:1px}
.pr-nstats{display:grid;grid-template-columns:repeat(5,1fr);margin:0 0 1.1em;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.pr-nstats .pr-stat{padding:.9vw 1.2vw;border-left:1px solid var(--border)}.pr-nstats .pr-stat:first-child{border-left:0}
.pr-nstats .pr-stat b{font-size:clamp(20px,1.8vw,38px)}
.pr-outlook-h{margin-top:1.6em}
.pr-fsm .er-fsmdays{margin:0}.pr-fsm .er-fsmdays h3{font-size:1.1em;font-weight:600}.pr-fsm .er-fsmdays h3 small{color:#8d8d86;display:block;margin:.3em 0 0}
.pr-fsm .er-daybar span{color:#8d8d86}.pr-fsm .er-daybar b{color:#f4f3ee}.pr-fsm .er-daybar i{background:rgba(255,255,255,.06);height:7em}
@media (max-width:1100px){.pr-nstats{grid-template-columns:repeat(2,1fr)}}

/* ---- Present: slide layout (one screen per topic) ---- */
.pr{min-height:100%;display:flex;flex-direction:column;padding:1.1vw 2.2vw 1.1vw}
.pr-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5vw}
.pr-brand{justify-self:start}.pr-actions{justify-self:end}
.pr-week{justify-self:center;display:flex;align-items:center;gap:1.1vw;flex-wrap:nowrap;margin:0}
.pr-week h2{font-size:clamp(24px,2.5vw,52px)}
.pr-week p{margin:.25em 0 0}
.pr-strip{display:flex;justify-content:center;border-top:0;padding:.7em 0 .1em}
.pr-tabs{display:flex;gap:.35em;align-self:center;margin:.5em 0 .9vw;padding:.35em;border:1px solid var(--border);border-radius:99px;background:rgba(255,255,255,.03)}
.pr-tabs button{display:flex;gap:.55em;align-items:center;background:none;border:0;color:#9a9a92;font:inherit;font-weight:600;font-size:.95em;padding:.55em 1.2em;border-radius:99px;cursor:pointer}
.pr-tabs button:hover{color:#f4f3ee}
.pr-tabs button kbd{font:inherit;font-size:.7em;opacity:.55;border:1px solid rgba(255,255,255,.25);border-radius:5px;padding:0 .4em}
.pr-tabs button em{font-style:normal;font-size:.78em;background:rgba(255,255,255,.1);border-radius:99px;padding:.1em .6em}
.pr-tabs button.on{background:#f4f3ee;color:#0a0c0b}.pr-tabs button.on kbd{border-color:rgba(0,0,0,.35)}.pr-tabs button.on em{background:rgba(0,0,0,.12)}
.pr-stage{flex:1;display:flex;flex-direction:column;gap:.9vw;animation:prIn .22s ease}
@keyframes prIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pr-stage>.pr-card+.pr-card,.pr-stage .pr-hero .pr-card+.pr-card{margin-top:0}
.pr-fill{flex:1}.pr-scroll{overflow:auto}
.pr-flags{display:flex;gap:.6em;flex-wrap:wrap}
.pr-flag{display:inline-flex;align-items:center;gap:.55em;padding:.45em .95em;border-radius:99px;font-size:.88em;font-weight:600;background:rgba(255,255,255,.06);color:#d8d7cf}
.pr-flag i{width:.55em;height:.55em;border-radius:50%;background:#8d8d86}
.pr-flag.good{background:rgba(154,208,74,.12);color:#b4e268}.pr-flag.good i{background:#9ad04a}
.pr-flag.warn{background:rgba(242,184,75,.12);color:#f2c978}.pr-flag.warn i{background:#f2b84b}
.pr-flag.bad{background:rgba(255,122,110,.12);color:#ff9a8f}.pr-flag.bad i{background:#ff7a6e}
.pr-hero{margin:0}.pr-stats{margin-bottom:0}
.pr-minichart{padding:.7vw 1.2vw}.pr-minichart .pr-legend{margin:0 0 .3em}
.pr-pricing-grid{display:grid;grid-template-columns:2.2fr 1fr;gap:1vw;align-items:start}
.pr-pcol .pr-card{margin:0}
.pr-targets .pr-trow{display:flex;justify-content:space-between;gap:1em;padding:.85em 0;border-bottom:1px solid rgba(255,255,255,.07)}
.pr-trow span{font-weight:600}.pr-trow small{display:block;color:#8d8d86;font-size:.8em;font-weight:400}
.pr-tval{text-align:right}.pr-tval b{display:block;font-size:1.5em;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.pr-tval i{font-style:normal;color:#8d8d86;font-size:.8em}
.pr-edit{margin-top:1.1em;background:rgba(255,255,255,.05);color:#f4f3ee;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:.6em 1.2em;font:inherit;font-weight:600;cursor:pointer}
.pr-edit:hover{border-color:#71a62b}
.pr-nstats-card{padding:0}.pr-nstats-card .pr-nstats{margin:0;border:0}
.pr-table tr.sel td{background:rgba(255,255,255,.05)}
.pr-foot{margin-top:.9vw}
@media (max-width:1100px){.pr-top{grid-template-columns:1fr}.pr-brand,.pr-actions,.pr-week{justify-self:center}.pr-pricing-grid{grid-template-columns:1fr}.pr-tabs{flex-wrap:wrap;border-radius:18px}}

/* ---- Present: fit each slide on one screen; only the content area ever scrolls ---- */
.er-present{overflow:hidden}
.pr{height:100%;min-height:0;padding:.9vw 2.2vw .8vw}
.pr-stage{min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;padding-bottom:2px}
.pr-top{gap:1.2vw}
.pr-strip{padding:.5em 0 0}
.pr-tabs{margin:.4em 0 .7vw}
.pr-tabs button{padding:.45em 1.1em}
.pr-hero .pr-card{padding:.9vw 1.3vw}
.pr-big{font-size:clamp(34px,3.7vw,78px)}.pr-big.sm{font-size:clamp(30px,3.1vw,64px)}
.pr-gwrap{width:min(9vw,185px);margin:.2em auto .2em}
.pr-attain{margin-top:.8em}.pr-sub{margin:.55em 0 0}
.pr-stat{padding:.75vw 1.3vw}.pr-stat b{font-size:clamp(20px,1.8vw,38px);margin:.1em 0}
.pr-minichart{flex:1;min-height:0}
.pr-minichart .pr-chartsvg{max-height:100%}
.pr-card{padding:1vw 1.3vw}
.pr-sec h2{margin:.2em 0 .55em}
.er-present .er-sheet th,.er-present .er-sheet td{padding:.36em .8em}
.er-present .er-sec th,.er-present .er-sec td{padding-top:.7em}
.pr-trend th,.pr-trend td{padding:.38em .4em}
.pr-table td{padding:.55em .8em}
.pr-next .pr-nstats .pr-stat{padding:.65vw 1.1vw}
.pr-outlook-h{margin-top:1em}
.pr-foot{margin-top:.6vw;flex:none}
.pr-top,.pr-strip,.pr-tabs,.pr-alert,.pr-foot{flex:none}
.pr-next .pr-table td{padding:.4em .8em}
.pr-next .pr-sec h2{margin-bottom:.45em}
.pr-next .pr-nstats{margin-bottom:.7em}
.pr-gc b{font-size:clamp(20px,1.85vw,40px)}.pr-gc small{font-size:.7em}
.pr-next .pr-table td.r small{display:block;text-align:right}
.pr-s-service .pr-fsm .er-daybar i{height:clamp(9em,30vh,26em)}.pr-s-service .pr-fsm .er-daybar b{font-size:1.05em}
@media (max-height:830px){
  .pr{padding-top:.7vw}.pr-card{padding:.7vw 1vw}.pr-sec h2{margin:.12em 0 .35em}
  .er-present .er-sheet th,.er-present .er-sheet td{padding:.22em .7em}.er-present .er-sec th,.er-present .er-sec td{padding-top:.4em}
  .pr-table td{padding:.28em .7em}.pr-next .pr-table td{padding:.25em .7em}.pr-trend th,.pr-trend td{padding:.25em .35em}
  .pr-stage{gap:.7vw}.pr-tabs{margin:.3em 0 .5vw}.pr-strip{padding-top:.3em}.pr-next .pr-nstats{margin-bottom:.4em}
}

/* ---- Present: a chart you can read, steadier header ---- */
.pr-minichart{flex:1 0 auto;min-height:clamp(210px,24vh,320px);display:flex;flex-direction:column}
.pr-minichart .pr-chartsvg{max-height:none;width:100%;height:auto;flex:1}
.pr-minichart .pr-chartsvg .ax{font-size:15px}.pr-minichart .pr-chartsvg .xl{font-size:16px}.pr-minichart .pr-chartsvg .vl{font-size:18px}
.pr-minichart .pr-legend{font-size:.9em}
.pr-nav{width:2.1em;height:2.1em;font-size:1.25em;padding:0 0 .1em;flex:none}
.pr-week{min-width:0}
.pr-top{min-height:4.4em}
.pr-minichart{min-height:clamp(200px,21vh,290px);padding:.5vw 1.1vw}
.pr-hero .pr-card{padding:.75vw 1.25vw}
.pr-stat{padding:.6vw 1.3vw}
.pr-flags{margin-top:-.1vw}
.pr-gwrap{width:min(8vw,165px)}
.pr-big{font-size:clamp(32px,3.3vw,70px)}.pr-big.sm{font-size:clamp(28px,2.8vw,58px)}
.pr-attain{margin-top:.6em}.pr-sub{margin:.4em 0 0}
.pr-stat b{font-size:clamp(20px,1.7vw,36px)}
.pr-outlook-h{margin-top:.55em}.pr-next .pr-table td{padding:.32em .8em}

/* wages dialog */
.er-wg-tools{display:flex;gap:12px;align-items:center;margin:10px 0 6px}.er-wg-tools input{flex:1;max-width:260px;margin:0}
.er-wg-list{max-height:min(46vh,420px)!important}
.er-wages td{padding:6px 8px!important;vertical-align:middle}.er-wages td small{display:block;color:var(--ink-faint);font-size:11px}
.er-wages input{width:96px;margin:0;display:inline-block;text-align:right}
.er-wages th.r,.er-wages td.r{text-align:right}
.er-wg-paste{margin:10px 0}.er-wg-paste summary{cursor:pointer;font-weight:600;font-size:13px}.er-wg-paste textarea{width:100%;box-sizing:border-box;font:inherit;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink)}
.er-wg-paste code{background:var(--canvas);padding:1px 5px;border-radius:5px}
#wgBurden{display:inline-block;width:100px;margin:0 6px}
.er-burdens{margin:10px 0 4px}.er-burden-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:4px 16px;margin-top:4px}
.er-burden-row label{margin:6px 0}.er-burden-row input{display:inline-block;width:100%;max-width:160px;margin:4px 6px 0 0}

.er-burden-row label{display:flex;flex-direction:column;gap:2px}.er-pctbox{display:flex;align-items:center;gap:6px}.er-burden-row .er-pctbox input{width:100%;max-width:150px;margin:0}

/* Present: installed, scheduled and total revenue */
.pr-rv3{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:0;margin:.35em 0 .5em}
.pr-rv3 .rv{padding:0 1.2vw;border-left:1px solid rgba(255,255,255,.1)}.pr-rv3 .rv:first-child{padding-left:0;border-left:0}
.pr-rv3 .rv span{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:.62em;color:#8d8d86;font-weight:700}
.pr-rv3 .rv b{display:block;font-size:clamp(22px,2.35vw,52px);font-weight:600;letter-spacing:-.03em;line-height:1.1;margin:.1em 0 .15em;font-variant-numeric:tabular-nums}
.pr-rv3 .rv small{display:block;color:#b9b8b0;font-size:.82em}
.pr-rv3 .rv.tot b{color:#b4e268;font-size:clamp(26px,2.9vw,62px)}
.pr-stack{display:flex;height:.6em;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.08);margin-top:.5em}
.pr-stack i{display:block;height:100%}.pr-stack i.a,.pr-legend2 i.a{background:linear-gradient(90deg,#6fa52a,#b4e268)}.pr-stack i.b,.pr-legend2 i.b{background:#7fb2f0}.pr-stack i.c,.pr-legend2 i.c{background:#f2b84b}
.pr-legend2{display:flex;gap:1.4em;flex-wrap:wrap;margin:.5em 0 0;font-size:.82em;color:#b9b8b0}
.pr-legend2 i{display:inline-block;width:.7em;height:.7em;border-radius:3px;margin-right:.45em;vertical-align:-.05em}
.pr-h1 .pr-sub{margin:.45em 0 0}
.pr-s-trend .er-present .er-sheet th,.pr-s-trend .er-present .er-sheet td{padding:.3em .8em}
.pr-s-trend .pr-sheet .er-sheet th,.pr-s-trend .pr-sheet .er-sheet td{padding:.3em .8em}
