
:root{
  --bg:#0b1220;--bg2:#101a2e;--panel:#ffffff;--panel-soft:#f6f8fc;
  --line:#dfe6f2;--text:#132238;--muted:#64748b;--navy:#0a2f78;--navy2:#113f98;
  --blue:#1f6fff;--green:#14a44d;--green-soft:#eaf7f0;--red:#d83b42;--amber:#d69f00;
  --shadow:0 16px 42px rgba(11,22,39,.10);--radius:22px;
}
*{box-sizing:border-box}
body{
  margin:0;font-family:"proxima-nova","Proxima Nova",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);
  background:radial-gradient(circle at top left,rgba(31,111,255,.16),transparent 22%),radial-gradient(circle at right 20%,rgba(20,164,77,.12),transparent 20%),linear-gradient(180deg,#eef3fb 0%,#f7f9fc 100%);
}
.shell{max-width:1440px;margin:0 auto;padding:20px}
.top{
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.70);
  border-radius:22px;
  padding:14px 16px;
  box-shadow:0 16px 42px rgba(11,22,39,.10);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  position:sticky;
  top:12px;
  z-index:40
}
.brand{display:flex;align-items:center;gap:16px;min-width:0}
.brand img{width:170px;max-height:62px;object-fit:contain;display:block}
.brand-copy{min-width:0}
.brand strong{display:block;font-size:20px;letter-spacing:-.4px;color:#10223b;line-height:1.1}
.brand span{display:block;font-size:13px;color:var(--muted);margin-top:3px}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}
select,button{border:1px solid #d9e2ec;border-radius:12px;padding:10px 13px;background:#fff;color:#10223b;font:inherit;font-weight:700}
button{cursor:pointer}
.user-chip{
  border:1px solid var(--line);
  background:#fff;
  padding:10px 13px;
  border-radius:999px;
  color:#596a80;
  font-size:12px;
  white-space:nowrap
}
.public-action-wrap{position:relative}
.public-action-btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  justify-content:center
}
.public-action-btn svg{
  width:17px;height:17px;
  fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round
}
.public-action-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  width:min(320px,88vw);
  background:#fff;
  border:1px solid #dfe7f1;
  border-radius:18px;
  box-shadow:0 22px 48px rgba(15,35,63,.16);
  padding:10px;
  display:none;
  z-index:90
}
.public-action-menu.open{display:block}
.public-action-head{
  padding:10px 11px 11px;
  border-bottom:1px solid #edf1f6;
  margin-bottom:7px
}
.public-action-head strong{display:block;font-size:12px;color:#17283f}
.public-action-head span{display:block;margin-top:3px;color:#74869c;font-size:10px}
.public-action-group{display:grid;gap:7px}
.public-action-item{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#20334d;
  text-align:left;
  font-size:12px;
  font-weight:800
}
.public-action-item:hover{background:#f3f7fc}
.public-action-icon{
  width:32px;height:32px;border-radius:10px;
  display:grid;place-items:center;
  background:#f1f5fa;color:#31577f;
  flex:0 0 32px
}
.public-action-icon svg{
  width:16px;height:16px;
  fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round
}
.public-week-control{
  padding:9px 11px 11px
}
.public-week-control label{
  display:block;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#77879b;
  margin-bottom:7px
}
.public-week-control select{
  width:100%;
  border-radius:11px;
  padding:10px 11px
}
.signout-btn{
  background:#edf2fa;
  color:#20334d;
  border-color:#e1e7ef
}
.hero{
  margin-top:18px;background:linear-gradient(135deg,rgba(10,47,120,.98),rgba(21,77,176,.93)),radial-gradient(circle at right top,rgba(20,164,77,.22),transparent 24%);
  color:#fff;border-radius:28px;padding:24px 24px 22px;box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;min-height:280px
}
.hero small{font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#bed1ff}.hero h1{margin:8px 0 6px;font-size:46px;line-height:.97;letter-spacing:-1.4px}.hero p{margin:0;color:#dfebff;max-width:650px;line-height:1.55}.hero-copy{display:flex;flex-direction:column;justify-content:center;align-self:center;min-height:100%;max-width:840px}
.period{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);padding:16px 18px;border-radius:18px;min-width:290px;align-self:center}.period label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#c8dbff;font-weight:900}.period b{display:block;margin-top:10px;font-size:28px;font-weight:900;line-height:1.05}
.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:16px}
.kpi,.panel{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
.panel{display:flex;flex-direction:column}
.kpi{padding:20px 16px 17px;text-align:center;display:flex;flex-direction:column;align-items:center}
.kpi-top{display:flex;flex-direction:column-reverse;justify-content:center;align-items:center;gap:10px;width:100%}
.kpi-top span{font-size:10px;font-weight:900;letter-spacing:.09em;color:#6d7f98;text-transform:uppercase;text-align:center}
.kpi-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#eef4ff;color:var(--navy);border:1px solid #dfe9f7}
.kpi-icon svg{width:23px;height:23px;display:block;stroke:currentColor}
.kpi .n{margin-top:14px;font-size:36px;text-align:center;font-weight:900;letter-spacing:-1px;color:var(--navy);line-height:1}
.kpi-note{font-size:9px;line-height:1.25;color:#7a8798;margin-top:7px;font-weight:700;letter-spacing:.02em;text-align:center}
.methodology-note{font-size:10px;line-height:1.45;color:#6e7d90;margin-top:10px;padding:9px 11px;background:#f7f9fc;border:1px solid #e5eaf1;border-radius:12px}
.delta{margin:12px auto 0;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:228px;min-height:58px;padding:10px 12px;border-radius:18px;border:1px solid transparent;text-align:center;box-shadow:0 10px 22px rgba(16,34,59,.06)}
.delta-icon{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;font-size:12px;font-weight:950;line-height:1;box-shadow:0 8px 16px rgba(16,34,59,.12)}
.delta-icon svg{width:17px;height:17px;display:block}
.delta .dcopy{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.12;flex:1}.delta .dcopy span{font-size:12px;font-weight:900}.delta .dcopy small{font-size:9px;letter-spacing:.05em;text-transform:uppercase;opacity:.72;margin-top:4px}
.delta.up{color:#0a7f43;background:linear-gradient(180deg,#f3fbf7,#e6f8ee);border-color:#cbead7}.delta.up .delta-icon{background:linear-gradient(135deg,#00a651,#1bb86a);color:#fff}
.delta.down{color:#b42318;background:linear-gradient(180deg,#fff6f5,#ffeded);border-color:#f3d0cc}.delta.down .delta-icon{background:linear-gradient(135deg,#d62828,#ef4444);color:#fff}
.delta.neutral{color:#16468f;background:linear-gradient(180deg,#f3f7ff,#ebf2ff);border-color:#d8e4fb}.delta.neutral .delta-icon{background:linear-gradient(135deg,#16468f,#2b64ba);color:#fff}.delta.unavailable{color:#5f6f82;background:linear-gradient(180deg,#f7f9fc,#eef2f6);border-color:#dce3ec}.delta.unavailable .delta-icon{background:linear-gradient(135deg,#708095,#8b99aa);color:#fff}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.panel{overflow:hidden}.ph{padding:16px 18px 10px;border-bottom:1px solid #edf1f7;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.ph small{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#75869c;font-weight:900}.ph h2{font-size:19px;margin:5px 0 0}
.ph.shena-green{padding:17px 18px 15px;min-height:70px;box-sizing:border-box;background:linear-gradient(135deg,#008f49 0%,#00a651 100%);border-bottom:1px solid #008447;color:#fff;align-items:center}
.ph.shena-green small{color:rgba(255,255,255,.78)}
.ph.shena-green h2{margin-top:5px;color:#fff;text-transform:uppercase;letter-spacing:.045em;font-size:18px;font-weight:950}.pb{padding:16px 18px 18px}
.pb.center-stage{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}
.pb.center-stage > *{width:100%}
.pb.center-stage .chart-box,.pb.center-stage .performance-summary,.pb.center-stage .risk{margin:auto 0}.pb.center-stage .piev{margin:0!important;align-self:stretch}
.pb.center-stage .chart-box{display:flex;align-items:center;justify-content:center}
table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid #edf1f6;padding:10px 8px;font-size:12px}th{text-transform:uppercase;letter-spacing:.07em;color:#73849a;font-size:10px;text-align:left}td:not(:first-child),th:not(:first-child){text-align:center}.total td{font-weight:900;background:#f8fafc}
.platform{display:flex;align-items:center;gap:8px;font-weight:800}.platform img{width:23px;height:23px;object-fit:contain}
svg{max-width:100%;height:auto;display:block}
.ce{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cebox{border:1px solid #e2e8ef;border-radius:15px;padding:14px}.cebox small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#77879d;font-weight:900}.cebox b{font-size:34px;color:var(--navy);display:block;margin-top:8px}.bar{height:13px;border-radius:999px;overflow:hidden;background:#eef2f6;display:flex;grid-column:1/-1}.benq{background:#275d9f}.bcon{background:#d48321}.cefoot{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#6c7d93;flex-wrap:wrap}
.hbars{display:grid;gap:8px}.hrow{display:grid;grid-template-columns:210px 1fr 38px;gap:10px;align-items:center;font-size:11px}.track{height:9px;background:#edf1f6;border-radius:999px;overflow:hidden}.fill{height:100%;background:#1767d2}
.risk{display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:center;border-radius:18px;padding:18px;color:#263548}.risk.positive{background:#edf8f1;border:1px solid #cfe8d8}.risk.neutral{background:#eef6ff;border:1px solid #cfe0f5}.risk.stable{background:#edf9f7;border:1px solid #cde9e4}.risk.watch{background:#fff7e5;border:1px solid #eed9a1}.risk.elevated{background:#fff0ef;border:1px solid #edcbc8}.risk.no-signal,.risk.under-review{background:#f3f6fa;border:1px solid #dbe3ed}.riskIcon{width:95px;height:95px;display:grid;place-items:center}.riskIcon svg{width:95px;height:95px}.risk b{font-size:28px;color:#263548}.risk h3{margin:5px 0 8px;color:#263548}.risk p{margin:0;line-height:1.45;color:#263548}
.loading,.error{text-align:center;padding:70px 20px;color:#64748b}.error{color:#a12a22}
.footer{text-align:center;color:#8190a2;font-size:10px;padding:18px}
@media(max-width:1000px){.grid5{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.hero{grid-template-columns:1fr;align-items:start;min-height:auto}.period{width:100%;box-sizing:border-box}}
@media(max-width:600px){
  .shell{padding:12px}
  .top{padding:12px;align-items:center}
  .brand{gap:11px;min-width:0;flex:1}
  .brand img{width:118px}
  .brand strong{font-size:15px}
  .brand span{font-size:10px}
  .actions{gap:6px}
  .actions .user-chip{display:none}
  .public-action-btn{min-height:40px;padding:9px 11px}
  .signout-btn{padding:9px 10px}
  .hero h1{font-size:31px}
  .grid5{grid-template-columns:1fr}
  .ce{grid-template-columns:1fr}
  .bar,.cefoot{grid-column:1}
  .hrow{grid-template-columns:150px 1fr 30px}
  .risk{grid-template-columns:1fr;text-align:center}
  .riskIcon{margin:auto}
}

/* v89: subtle hover-lift interaction for dashboard content sections */
.hero,.kpi,.panel{
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
@media (hover:hover) and (pointer:fine){
  .hero:hover,.kpi:hover,.panel:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 38px rgba(16,34,59,.14);
    border-color:#d6e0eb;
  }
  .hero:hover{
    box-shadow:0 22px 46px rgba(10,47,120,.20);
  }
}
@media (prefers-reduced-motion:reduce){
  .hero,.kpi,.panel{transition:none}
}

@media print{.hero,.kpi,.panel{transform:none!important}body{background:#fff}.shell{padding:0}.top .actions{display:none}.top{position:static}.top,.kpi,.panel{box-shadow:none}.hero{break-inside:avoid}.panel{break-inside:avoid}}

.authwrap{max-width:460px;margin:72px auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:0 18px 42px rgba(33,55,82,.1)}
.authwrap img{width:180px;display:block;margin:0 auto 18px}
.authwrap h2{text-align:center;margin:0 0 6px}.authwrap p{text-align:center;color:var(--muted);font-size:13px;line-height:1.45}
.authform{display:grid;gap:12px;margin-top:20px}
.authform label{font-size:11px;font-weight:900;color:#53657d}
.authform input{
  width:100%;
  margin-top:7px;
  border:1px solid #d9e2ec;
  border-radius:13px;
  padding:13px 14px;
  font:inherit;
  outline:none;
  transition:.18s ease
}
.authform input:focus{
  border-color:#8fb1e9;
  box-shadow:0 0 0 4px rgba(24,76,156,.09)
}
.authform button{background:var(--navy);color:#fff;border-color:var(--navy)}
.authmsg{min-height:18px;margin-top:10px;font-size:12px;color:#b42318;text-align:center}
.userbar{display:flex;align-items:center;gap:10px;color:#596a80;font-size:12px}.userbar button{padding:8px 10px}

/* PUBLIC VIEWER LOGIN */
.public-login-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px;
  background:
    radial-gradient(circle at 14% 12%,rgba(43,100,186,.22),transparent 26%),
    radial-gradient(circle at 84% 18%,rgba(0,166,81,.17),transparent 22%),
    linear-gradient(145deg,#07111f,#12213a 46%,#0e1830 100%)
}
.public-login-shell[hidden]{display:none!important}
#setPasswordView[hidden],#viewerShell[hidden]{display:none!important}
.public-login-card{
  width:min(1060px,100%);
  min-height:640px;
  display:grid;
  grid-template-columns:1.12fr .88fr;
  overflow:hidden;
  border-radius:29px;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
  box-shadow:0 30px 65px rgba(0,0,0,.28)
}
.public-login-visual{
  padding:42px;
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:
    linear-gradient(180deg,rgba(10,47,120,.88),rgba(8,24,52,.74)),
    radial-gradient(circle at top left,rgba(0,166,81,.32),transparent 30%)
}
.public-login-logo{
  width:205px;
  max-width:100%;
  display:block;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.20))
}
.public-login-visual h1{
  margin:26px 0 14px;
  max-width:620px;
  font-size:48px;
  line-height:.98;
  letter-spacing:-1.6px
}
.public-login-visual p{
  max-width:520px;
  margin:0;
  color:rgba(255,255,255,.80);
  font-size:15px;
  line-height:1.6
}
.public-login-chips{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:24px
}
.public-login-chip{
  padding:9px 11px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  background:rgba(255,255,255,.11);
  color:#fff;
  font-size:11px;
  font-weight:850
}
.public-login-foot{
  color:rgba(255,255,255,.58);
  font-size:11px;
  line-height:1.5
}
.public-login-form-wrap{
  background:#fff;
  padding:46px;
  display:flex;
  align-items:center
}
.public-login-form-card{
  width:100%;
  max-width:390px;
  margin:auto
}
.viewer-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#31567f;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.10em
}
.viewer-kicker i{
  width:8px;height:8px;border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 5px rgba(0,166,81,.10)
}
.public-login-form-card h2{
  margin:17px 0 8px;
  color:#13243c;
  font-size:32px;
  line-height:1.05;
  letter-spacing:-.7px
}
.public-login-form-card .login-sub{
  margin:0;
  color:#718198;
  font-size:13px;
  line-height:1.55
}
.public-login-form-card .authform{margin-top:25px}
.public-login-form-card .authform button{
  width:100%;
  min-height:47px;
  margin-top:6px;
  border-radius:13px;
  background:linear-gradient(135deg,#0d2e6f,#184c9c);
  box-shadow:0 10px 22px rgba(13,46,111,.18)
}
.public-login-note{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:18px;
  padding:11px 12px;
  border-radius:13px;
  background:#f5f8fc;
  border:1px solid #e5ebf3;
  color:#68798e;
  font-size:10px;
  line-height:1.45
}
.public-login-note svg{
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin-top:1px;
  fill:none;
  stroke:#42668f;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round
}
@media(max-width:900px){
  .public-login-card{grid-template-columns:1fr;min-height:auto}
  .public-login-visual{min-height:360px;padding:34px}
  .public-login-visual h1{font-size:40px}
  .public-login-form-wrap{padding:38px 30px}
}
@media(max-width:560px){
  .public-login-shell{padding:14px}
  .public-login-card{border-radius:22px}
  .public-login-visual{min-height:300px;padding:27px}
  .public-login-logo{width:165px}
  .public-login-visual h1{font-size:34px;letter-spacing:-1px}
  .public-login-visual p{font-size:13px}
  .public-login-form-wrap{padding:30px 22px}
  .public-login-form-card h2{font-size:28px}
}

.piev{display:grid;grid-template-columns:minmax(190px,240px) 1fr;gap:24px;align-items:center;min-height:250px;padding:6px 4px}
.piev-chart{width:min(220px,100%);aspect-ratio:1;border-radius:50%;margin:auto;position:relative;border:1px solid #dfe6ee;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.piev-legend{display:grid;gap:13px}
.piev-row{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid #e5eaf0;border-radius:13px;background:#fff}
.piev-dot{width:12px;height:12px;border-radius:3px}.piev-row small{display:block;text-transform:uppercase;letter-spacing:.07em;color:#78889d;font-weight:900;font-size:9px}.piev-row b{font-size:24px;color:var(--navy)}
.piev-total{padding:11px 12px;border-radius:13px;background:#f5f8fb;color:#53657b;font-size:11px}
@media(max-width:600px){.piev{grid-template-columns:1fr}}


/* v65 reporting metadata */
.period-status-pill{display:inline-flex;margin-top:11px;padding:6px 9px;border-radius:999px;font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.period-status-pill.final{background:#dff5e8;color:#08733c}
.period-status-pill.draft{background:#fff0c8;color:#8a5b00}
.period-neighbours{display:grid;gap:3px;margin-top:10px;color:#dce8ff;font-size:9px;line-height:1.35}
.footer-meta{margin-top:4px;color:#8e9bab;font-size:9px}
/* v73: Public Confidence typography is neutral charcoal; risk colours are reserved for icon/background only. */

/* v74 shared summary layout */
.performance-summary{color:#263548;font-size:14px;line-height:1.55}
.performance-summary p{margin:0 0 14px}
.performance-summary p:last-child{margin-bottom:0}
.performance-summary strong{color:#263548;font-weight:900}


/* v75 shared Content Engagement Trend treatment */
.trend-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.trend-badge{
  display:inline-flex;
  align-items:center;
  padding:8px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
  background:rgba(255,255,255,.17);
  color:#fff;
  border:1px solid rgba(255,255,255,.28)
}
.chart-legend{
  display:flex;
  justify-content:center;
  gap:14px;
  margin-top:8px;
  font-size:12px;
  font-weight:900;
  color:#263548
}
.legend-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  display:inline-block;
  margin-right:6px;
  vertical-align:middle;
  background:#1767d2
}
@media(max-width:600px){
  .trend-head{align-items:flex-start}
  .trend-badge{font-size:9px;padding:7px 8px}
}


.platform-rate{display:flex;align-items:center;justify-content:center;gap:9px;min-width:118px}
.platform-rate-track{width:64px;height:7px;border-radius:999px;background:#e8eef7;overflow:hidden;flex:0 0 64px}
.platform-rate-fill{height:100%;border-radius:999px;background:#1f6fff}
.platform-rate span{min-width:46px;text-align:right;font-weight:900;color:#263548}
.total td{font-weight:900;background:#f8fafc}
.footer{margin:18px 0 4px;padding:14px 16px;border:1px solid #e3eaf3;background:rgba(255,255,255,.78);border-radius:16px;color:#718198;font-size:10px;text-align:center;line-height:1.55}

.category-chart{height:310px}.category-chart svg{width:100%;height:100%}

/* v77 — Reputational Watch source attribution */
.reputation-sources{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid rgba(38,53,72,.10);
  color:#5f6d7e;
  font-size:11px;
}
.reputation-sources-label{
  font-weight:900;
  letter-spacing:.03em;
  color:#4a596c;
}
.source-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border-radius:999px;
  border:1px solid #dfe6ee;
  background:rgba(255,255,255,.72);
  color:#4c5a6c;
  font-weight:800;
  line-height:1;
}
.source-icon{
  width:16px;
  height:16px;
  display:block;
  flex:0 0 16px;
}

@media(max-width:600px){
  .reputation-sources{justify-content:center}
}

/* v78 — Performance Summary bullets */
.performance-summary-list{
  margin:0;
  padding-left:20px;
  color:#263548;
}
.performance-summary-list li{
  margin:0 0 12px;
  line-height:1.55;
}
.performance-summary-list li:last-child{
  margin-bottom:0;
}
.performance-summary-list li::marker{
  color:#00a651;
  font-size:1.05em;
}


/* v96 — public Reputational Watch summary only; raw mentions remain admin-only */
.rep-public-stats{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 2px}
.rep-public-stat{display:inline-flex;gap:5px;align-items:center;padding:6px 9px;border:1px solid #dfe7f1;border-radius:999px;background:#fff;font-size:11px;font-weight:800;color:#42546b}
.rep-public-stat strong{color:#172b46;font-size:12px}.rep-neutral-public-note{margin-top:9px;color:#66788e;font-size:10px;line-height:1.45}

/* v98 — Smart Bulletin public output */
.smart-monitoring-list{margin:0;padding-left:20px;display:grid;gap:8px;color:#344961;line-height:1.5}.smart-full{grid-column:1/-1}.source-breakdown{margin-top:8px;font-size:11px;color:#6a7b90;font-weight:700}

/* v99 public weekly + quarterly switch */
/* v100 smart Reputational Watch status colours and icons */
.public-report-switch{display:inline-flex;gap:5px;margin:18px 0 0;padding:5px;border:1px solid #dfe6ef;background:#fff;border-radius:14px;box-shadow:0 8px 20px rgba(20,45,80,.06)}.public-report-switch button{border:0;background:transparent;color:#66768a;border-radius:10px;padding:9px 14px;font:inherit;font-size:11px;font-weight:900;cursor:pointer}.public-report-switch button.active{background:#0a2f78;color:#fff}.quarter-public-hero{margin-top:18px;padding:25px 26px;border-radius:24px;background:linear-gradient(135deg,#0b3479,#174f9e);color:#fff;display:flex;justify-content:space-between;gap:20px}.quarter-public-hero small{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;opacity:.78}.quarter-public-hero h1{font-size:31px;margin:7px 0 7px;letter-spacing:-.7px}.quarter-public-hero p{margin:0;color:rgba(255,255,255,.8);font-size:12px;line-height:1.55;max-width:700px}.quarter-public-badge{align-self:flex-start;padding:7px 10px;border-radius:999px;background:#fff;color:#0b3a83;font-size:9px;font-weight:900;white-space:nowrap}.qpub-note{margin-top:12px;padding:12px 14px;border-radius:13px;background:#fff8e8;border:1px solid #f0ddb2;color:#76520a;font-size:10px;line-height:1.5}.qpub-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}.qpub-kpi{padding:16px 17px;border:1px solid #e4eaf2;border-radius:18px;background:#fff}.qpub-kpi small{font-size:9px;font-weight:900;color:#77869a;text-transform:uppercase;letter-spacing:.06em}.qpub-kpi strong{display:block;margin-top:7px;font-size:26px;color:#17304f}.qpub-kpi span{display:block;margin-top:4px;color:#8391a2;font-size:9px}.qpub-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.qpub-panel{background:#fff;border:1px solid #e4eaf2;border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.qpub-panel.full{grid-column:1/-1}.qpub-head{padding:15px 17px;border-bottom:1px solid #edf1f6}.qpub-head small{font-size:9px;text-transform:uppercase;font-weight:900;color:#19854b;letter-spacing:.07em}.qpub-head h2{margin:5px 0 0;font-size:17px}.qpub-body{padding:16px 17px}
.qpub-body.center-stage{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px}
.qpub-body.center-stage > *{width:100%}
.qpub-body.center-stage .qpub-trend,.qpub-body.center-stage .qpub-contact,.qpub-body.center-stage .qpub-rep-feature,.qpub-body.center-stage .rep-neutral-public-note{margin:auto 0}.qpub-table{width:100%;border-collapse:collapse;font-size:10px}.qpub-table th,.qpub-table td{padding:9px 7px;border-bottom:1px solid #edf1f5;text-align:right}.qpub-table th:first-child,.qpub-table td:first-child{text-align:left}.qpub-table th{font-size:8px;color:#7b8999;text-transform:uppercase}.qpub-table tr:last-child td{border-bottom:0}.qpub-comparison{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.qpub-compare{padding:13px;border-radius:13px;background:#fbfcfe;border:1px solid #e6ebf3}.qpub-compare small{font-size:8px;text-transform:uppercase;font-weight:900;color:#7b8999}.qpub-compare strong{display:block;margin:5px 0 4px;font-size:20px}.qpub-compare span{font-size:9px;font-weight:900}.qpub-compare span.up{color:#12813e}.qpub-compare span.down{color:#c0362c}.qpub-compare span.neutral{color:#7b8999}.qpub-contact,.qpub-sentiment{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.qpub-contact div,.qpub-sentiment div{padding:13px;border-radius:13px;background:#f7f9fc;border:1px solid #e6ebf3}.qpub-contact small,.qpub-sentiment small{font-size:8px;text-transform:uppercase;font-weight:900;color:#7b8999}.qpub-contact strong,.qpub-sentiment strong{display:block;margin-top:5px;font-size:20px}.qpub-sentiment .qrep-status{display:flex;align-items:center;gap:8px}.qpub-sentiment .qrep-status svg{width:28px;height:28px;flex:0 0 28px}.qpub-sentiment .qrep-status.positive{background:#edf8f1;border-color:#cfe8d8}.qpub-sentiment .qrep-status.neutral{background:#eef6ff;border-color:#cfe0f5}.qpub-sentiment .qrep-status.stable{background:#edf9f7;border-color:#cde9e4}.qpub-sentiment .qrep-status.watch{background:#fff7e5;border-color:#eed9a1}.qpub-sentiment .qrep-status.elevated{background:#fff0ef;border-color:#edcbc8}.qpub-sentiment .qrep-status.no-signal,.qpub-sentiment .qrep-status.under-review{background:#f3f6fa;border-color:#dbe3ed}.qpub-bars{display:grid;gap:9px}.qpub-bar{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,2fr) 45px;gap:9px;align-items:center;font-size:9px}.qpub-track{height:8px;background:#edf1f6;border-radius:999px;overflow:hidden}.qpub-fill{height:100%;background:linear-gradient(90deg,#0f766e,#16a34a)}.qpub-insights{margin:0;padding-left:18px;display:grid;gap:8px;color:#526278;font-size:11px;line-height:1.55}.qpub-trend{width:100%;max-width:100%;min-width:0;height:auto;display:block}.qpub-trend .grid{stroke:#e8edf4;stroke-width:1}.qpub-trend .line{fill:none;stroke:#1f6fff;stroke-width:3}.qpub-trend .dot{fill:#fff;stroke:#1f6fff;stroke-width:2}.qpub-trend text{fill:#748499;font-size:9px}@media(max-width:850px){.qpub-kpis{grid-template-columns:repeat(2,1fr)}.qpub-grid{grid-template-columns:1fr}.qpub-panel.full{grid-column:auto}.qpub-comparison,.qpub-contact,.qpub-sentiment{grid-template-columns:repeat(2,1fr)}}


/* v101 — modern quarterly reporting + unified weekly summary */
.quarter-public-hero{position:relative;overflow:hidden;min-height:225px;padding:29px 30px;background:linear-gradient(135deg,#082d6f 0%,#0d4b99 58%,#08764e 125%);box-shadow:0 18px 42px rgba(17,55,110,.14)}.quarter-public-hero:before{content:"";position:absolute;right:-100px;top:-120px;width:330px;height:330px;border-radius:50%;background:rgba(255,255,255,.08)}.quarter-public-hero>div,.quarter-public-badge{position:relative;z-index:1}.quarter-public-hero h1{font-size:38px;letter-spacing:-1.2px}.quarter-public-badge{padding:8px 11px}
.qpub-kpis{gap:14px}.qpub-kpi{position:relative;overflow:hidden;min-height:132px;border-radius:20px;box-shadow:0 10px 26px rgba(21,48,83,.045);transition:transform .18s ease,box-shadow .18s ease}.qpub-kpi:hover,.qpub-panel:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(21,48,83,.10)}.qpub-kpi:after{content:"";position:absolute;right:-30px;bottom:-42px;width:100px;height:100px;border-radius:50%;background:#f4f8fd}.qpub-kpi>*{position:relative;z-index:1}.qpub-kpi strong{font-size:29px;color:#0d315f}
.qpub-panel{border-radius:22px;box-shadow:0 10px 26px rgba(21,48,83,.04);transition:transform .18s ease,box-shadow .18s ease}.qpub-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px;background:linear-gradient(135deg,#008f49,#00a651);border-bottom-color:#008447;color:#fff}.qpub-head small{color:rgba(255,255,255,.78);letter-spacing:.12em}.qpub-head h2{color:#fff;text-transform:uppercase;letter-spacing:.035em;font-size:15px;font-weight:950}.qpub-comparison{gap:11px}.qpub-compare{border-radius:15px;background:linear-gradient(180deg,#fff,#f8fbff)}
.qpub-platform-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.qpub-platform-card{padding:14px;border:1px solid #e2e9f2;border-radius:16px;background:linear-gradient(180deg,#fff,#fbfdff)}.qpub-platform-card.leader{border-color:#bfe6cf;background:linear-gradient(180deg,#f9fffb,#f2fbf6)}.qpub-platform-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.qpub-platform-name{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:900}.qpub-platform-name img{width:20px;height:20px}.qpub-platform-head b{padding:4px 6px;border-radius:999px;background:#e4f7eb;color:#117641;font-size:7px;text-transform:uppercase}.qpub-platform-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:11px}.qpub-platform-metrics small{display:block;font-size:7px;text-transform:uppercase;color:#7b8999;font-weight:900}.qpub-platform-metrics strong{display:block;margin-top:2px;font-size:14px}.qpub-platform-track{height:5px;border-radius:999px;overflow:hidden;background:#edf2f7;margin-top:10px}.qpub-platform-track span{display:block;height:100%;background:linear-gradient(90deg,#1f6fff,#00a651)}
.qpub-insights{padding:0;list-style:none;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;gap:9px}.qpub-insights li{position:relative;padding:12px 13px 12px 35px;border:1px solid #e5ece8;border-radius:13px;background:#fff}.qpub-insights li:before{content:"✓";position:absolute;left:11px;top:11px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#e5f7ec;color:#08763d;font-weight:950;font-size:9px}
.qpub-rep-feature{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;border:1px solid #e2e8ef;border-radius:15px;padding:13px}.qpub-rep-feature svg{width:52px;height:52px}.qpub-rep-feature small{font-size:7px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#76879a}.qpub-rep-feature strong{display:block;margin-top:3px;font-size:20px}.qpub-rep-feature span{display:block;margin-top:4px;font-size:9px;color:#68798e}.qpub-rep-feature.positive{background:#edf8f1;border-color:#cfe8d8}.qpub-rep-feature.neutral{background:#eef6ff;border-color:#cfe0f5}.qpub-rep-feature.stable{background:#edf9f7;border-color:#cde9e4}.qpub-rep-feature.watch{background:#fff7e5;border-color:#eed9a1}.qpub-rep-feature.elevated{background:#fff0ef;border-color:#edcbc8}.qpub-rep-feature.no-signal,.qpub-rep-feature.under-review{background:#f3f6fa;border-color:#dbe3ed}
@media(max-width:1050px){.qpub-platform-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.qpub-platform-cards{grid-template-columns:1fr}.qpub-insights{grid-template-columns:1fr}.quarter-public-hero h1{font-size:32px}}


/* v103 — Smart Bulletin / Brunei Time reporting basis */
.smart-public-basis{margin:14px 0 18px;padding:14px 16px;border:1px solid #dce7f1;border-radius:16px;background:linear-gradient(135deg,#f7fbff,#f2fbf6);display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:center}.smart-public-basis>div{display:flex;gap:11px;align-items:center}.smart-public-basis>div+div{padding-left:14px;border-left:1px solid #dce7ef}.smart-public-basis i{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#e7f6ed;color:#087844;font-style:normal;font-size:17px}.smart-public-basis small{display:block;font-size:8px;font-weight:950;letter-spacing:.09em;text-transform:uppercase;color:#728299}.smart-public-basis strong{display:block;margin-top:2px;font-size:12px;color:#163b6a}.smart-public-basis span{display:block;margin-top:3px;font-size:9px;color:#708096;line-height:1.4}@media(max-width:680px){.smart-public-basis{grid-template-columns:1fr}.smart-public-basis>div+div{padding-left:0;padding-top:12px;border-left:0;border-top:1px solid #dce7ef}}


.public-week-structured{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.public-week-structured .public-week-report{grid-column:1/-1}
.public-week-structured label{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#718096}
.public-week-structured select{width:100%;margin-top:5px}
.public-week-note{margin-top:7px;font-size:9px;line-height:1.35;color:#718096}
@media(max-width:560px){.public-week-structured{grid-template-columns:1fr}.public-week-structured .public-week-report{grid-column:auto}}


/* v159 — Monthly Dashboard. Reuses the proven Quarterly public visual system. */
#monthlyPublicContent{position:relative}
#monthlyPublicContent .qpub-kpi{border-color:#dde6f1;background:linear-gradient(145deg,#fff 0%,#fbfdff 75%,#f6faff 100%);min-height:150px;padding:16px}
#monthlyPublicContent .qpub-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#1269cf,#00a651)}
@media(prefers-reduced-motion:reduce){#monthlyPublicContent .qpub-kpi,#monthlyPublicContent .qpub-panel{transition:none!important}}

/* v120 — Quarterly Executive Visual Refresh ONLY. Weekly public dashboard untouched. */
#quarterlyPublicContent{position:relative}
#quarterlyPublicContent .qpub-kpi{border-color:#dde6f1;background:linear-gradient(145deg,#fff 0%,#fbfdff 75%,#f6faff 100%);min-height:150px;padding:16px}
#quarterlyPublicContent .qpub-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#1269cf,#00a651)}
.qpub-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:9px}.qpub-kpi-top>small{margin:0}.qpub-kpi-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#eef4ff;color:#1557a8;border:1px solid #dce8f8;box-shadow:0 7px 16px rgba(18,75,145,.08)}.qpub-kpi-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.qpub-kpi-delta{display:inline-flex!important;width:max-content;margin-top:10px!important;padding:5px 8px;border-radius:999px;font-size:8px!important;font-weight:900}.qpub-kpi-delta.up{background:#eaf8ef;color:#13743d}.qpub-kpi-delta.down{background:#fff0ef;color:#b53730}.qpub-kpi-delta.neutral{background:#f1f4f8;color:#6d7e92}
.qpub-head-title{display:flex;align-items:center;gap:10px;min-width:0}.qpub-head-title>div{min-width:0}.qpub-head-icon{width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;border-radius:11px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);color:#fff}.qpub-head-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.qpub-chart-shell{position:relative;width:100%;min-width:0;max-width:100%}.qpub-chart-summary{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;margin-bottom:3px}.qpub-chart-summary span{display:inline-flex;gap:4px;align-items:center;padding:5px 7px;border-radius:999px;background:#f4f8fd;border:1px solid #e1eaf5;color:#6b7b8f;font-size:7px;font-weight:850}.qpub-chart-summary b{font-size:8px;color:#123c75}.qpub-trend-wrap{position:relative;overflow:visible;width:100%;min-width:0;max-width:100%}.qpub-trend{width:100%;max-width:100%;min-width:0;height:auto;display:block;overflow:visible}.qpub-trend .area{opacity:.24}.qpub-trend .line{stroke-width:3.5;filter:drop-shadow(0 4px 5px rgba(31,111,255,.12))}.qpub-trend .qpoint{outline:none}.qpub-trend .qpoint-hit{fill:transparent;cursor:help}.qpub-trend .qpoint:focus .dot,.qpub-trend .qpoint:hover .dot{r:6;stroke-width:3}.qpub-trend .value-label{fill:#173b69;font-size:9px;font-weight:950;paint-order:stroke;stroke:#fff;stroke-width:3px}.qpub-trend .axis-label{fill:#75859a;font-size:8px;font-weight:800}
.qpub-hover-tooltip{position:fixed;z-index:99999;max-width:260px;padding:9px 11px;border-radius:11px;background:#102e54;color:#fff;box-shadow:0 12px 30px rgba(10,35,70,.22);font-size:10px;line-height:1.45;font-weight:750;pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%,-112%);transition:opacity .1s ease,visibility .1s ease}.qpub-hover-tooltip.visible{opacity:1;visibility:visible}
.qpub-donut-layout{display:grid;grid-template-columns:minmax(180px,225px) 1fr;gap:21px;align-items:center;min-height:235px;width:100%}.qpub-donut-box{display:grid;place-items:center}.qpub-donut{width:min(220px,100%);height:auto;overflow:visible}.qpub-donut .donut-base{fill:none;stroke:#edf2f7;stroke-width:14}.qpub-donut .donut-segment{fill:none;stroke-width:14;cursor:help;transition:stroke-width .14s ease,filter .14s ease}.qpub-donut .donut-segment:hover,.qpub-donut .donut-segment:focus{stroke-width:17;filter:drop-shadow(0 4px 6px rgba(19,51,91,.16));outline:none}.qpub-donut .donut-enquiries{stroke:#0067FF}.qpub-donut .donut-concerns{stroke:#009802}.qpub-donut .donut-total{font-size:18px;font-weight:950;fill:#123c75;text-anchor:middle}.qpub-donut .donut-caption{font-size:7px;font-weight:900;fill:#7a899c;text-anchor:middle;letter-spacing:.08em}.qpub-donut-layout .piev-row{cursor:help;transition:transform .14s ease,border-color .14s ease}.qpub-donut-layout .piev-row:hover{transform:translateX(3px);border-color:#cfdeef}
.qpub-bar{grid-template-columns:minmax(155px,1fr) minmax(130px,2fr) 55px;cursor:help}.qpub-track{height:13px;box-shadow:inset 0 0 0 1px #e3eaf2}.qpub-fill{background:linear-gradient(90deg,#1269cf,#00a651);box-shadow:0 3px 8px rgba(18,105,207,.14)}.qpub-bar>b{justify-self:end;min-width:42px;padding:5px 7px;border-radius:9px;background:#f2f7fc;border:1px solid #dfe8f2;color:#173b69;text-align:center;font-size:9px}.qpub-platform-card{cursor:help;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.qpub-platform-card:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(21,48,83,.08);border-color:#cedbea}.qpub-platform-track{height:7px}.qpub-compare{position:relative;overflow:hidden}.qpub-compare:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,#1269cf,#00a651);opacity:.65}
@media(max-width:700px){.qpub-head-icon{width:32px;height:32px;flex-basis:32px}.qpub-donut-layout{grid-template-columns:1fr}.qpub-chart-summary{justify-content:flex-start}.qpub-bar{grid-template-columns:1fr}.qpub-bar>b{justify-self:start}}
@media(prefers-reduced-motion:reduce){#quarterlyPublicContent .qpub-kpi,#quarterlyPublicContent .qpub-panel,.qpub-platform-card,.qpub-donut .donut-segment,.qpub-trend .dot{transition:none!important}}



/* v121 — Weekly Public Visual Refresh ONLY. Quarterly and data retrieval logic unchanged. */
#content .panel{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}#content .panel:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(21,48,83,.09);border-color:#d6e1ee}
.weekly-public-head-title{display:flex;align-items:center;gap:10px;min-width:0}.weekly-public-head-title>div{min-width:0}.weekly-public-head-icon{width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;border-radius:11px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);color:#fff}.weekly-public-head-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.weekly-public-chart-shell{position:relative;width:100%;min-width:0;max-width:100%}.weekly-public-chart-summary{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;margin-bottom:4px}.weekly-public-chart-summary span{display:inline-flex;gap:4px;align-items:center;padding:5px 7px;border-radius:999px;background:#f4f8fd;border:1px solid #e1eaf5;color:#6b7b8f;font-size:7px;font-weight:850}.weekly-public-chart-summary b{font-size:8px;color:#123c75}.weekly-public-trend-wrap{position:relative;overflow:visible;width:100%;min-width:0;max-width:100%}.weekly-public-trend{width:100%;max-width:100%;min-width:0;height:auto;display:block;overflow:visible}.weekly-public-trend .grid{stroke:#e8edf4;stroke-width:1}.weekly-public-trend .area{opacity:.24}.weekly-public-trend .line{stroke:#1f6fff;stroke-width:3.5;stroke-linecap:round;filter:drop-shadow(0 4px 5px rgba(31,111,255,.12))}.weekly-public-trend .wpoint{outline:none}.weekly-public-trend .hit{fill:transparent;cursor:help}.weekly-public-trend .dot{fill:#fff;stroke:#1f6fff;stroke-width:2;transition:r .14s ease,stroke-width .14s ease}.weekly-public-trend .dot.current{fill:#14a44d;stroke-width:3}.weekly-public-trend .wpoint:hover .dot,.weekly-public-trend .wpoint:focus .dot{r:6.5;stroke-width:3}.weekly-public-trend .value-label{fill:#173b69;font-size:9px;font-weight:950;paint-order:stroke;stroke:#fff;stroke-width:3px}.weekly-public-trend .axis-label{fill:#75859a;font-size:8px;font-weight:800}.weekly-public-trend .axis-label.current{fill:#0a2f78;font-weight:950}.weekly-public-tooltip{position:fixed;z-index:99999;max-width:270px;padding:9px 11px;border-radius:11px;background:#102e54;color:#fff;box-shadow:0 12px 30px rgba(10,35,70,.22);font-size:10px;line-height:1.45;font-weight:750;pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%,-112%);transition:opacity .1s ease,visibility .1s ease}.weekly-public-tooltip.visible{opacity:1;visibility:visible}
.weekly-public-donut-layout{display:grid;grid-template-columns:minmax(245px,315px) minmax(0,1fr);gap:30px;align-items:center;align-content:center;min-height:100%;width:100%}.weekly-public-donut-box{display:grid;place-items:center}.weekly-public-donut{width:min(305px,100%);height:auto;overflow:visible}.weekly-public-donut .donut-base{fill:none;stroke:#edf2f7;stroke-width:14}.weekly-public-donut .donut-segment{fill:none;stroke-width:14;cursor:help;transition:stroke-width .14s ease,filter .14s ease}.weekly-public-donut .donut-segment:hover,.weekly-public-donut .donut-segment:focus{stroke-width:17;filter:drop-shadow(0 4px 6px rgba(19,51,91,.16));outline:none}.weekly-public-donut .donut-enquiries{stroke:#0067FF}.weekly-public-donut .donut-concerns{stroke:#009802}.weekly-public-donut .donut-total{font-size:18px;font-weight:950;fill:#123c75;text-anchor:middle}.weekly-public-donut .donut-caption{font-size:7px;font-weight:900;fill:#7a899c;text-anchor:middle;letter-spacing:.08em}.weekly-public-donut-layout .piev-legend{gap:18px;align-content:center}.weekly-public-donut-layout .piev-row{padding:17px 18px;border-radius:16px;cursor:help;transition:transform .14s ease,border-color .14s ease}.weekly-public-donut-layout .piev-total{padding:16px 18px;border-radius:16px}.weekly-public-donut-layout .piev-row:hover{transform:translateX(3px);border-color:#cfdeef}.weekly-public-contact-panel{align-self:stretch}.weekly-public-contact-panel .pb{flex:1;display:flex;align-items:center;padding-top:22px;padding-bottom:22px}.weekly-public-contact-panel .weekly-public-donut-layout{height:100%}
#content .category-chart{height:auto!important;display:block}.weekly-public-category-shell{width:100%}.weekly-public-category-bars{display:grid;gap:9px;margin-top:7px}.weekly-public-category-row{display:grid;grid-template-columns:minmax(155px,1fr) minmax(130px,2fr) 55px;gap:9px;align-items:center;font-size:9px;cursor:help;outline:none}.weekly-public-category-row strong{color:#43546b}.weekly-public-category-track{height:13px;background:#eaf0f6;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px #e3eaf2}.weekly-public-category-fill{height:100%;border-radius:inherit;box-shadow:0 3px 8px rgba(18,105,207,.10);transition:filter .14s ease,transform .14s ease;transform-origin:left center}.weekly-public-category-row:hover .weekly-public-category-fill,.weekly-public-category-row:focus .weekly-public-category-fill{filter:brightness(1.06);transform:scaleY(1.12)}.weekly-public-category-row>b{justify-self:end;min-width:42px;padding:5px 7px;border-radius:9px;background:#f2f7fc;border:1px solid #dfe8f2;color:#173b69;text-align:center;font-size:9px}.weekly-public-platform-row{cursor:help;outline:none;transition:background .13s ease}.weekly-public-platform-row:hover,.weekly-public-platform-row:focus{background:#f7fbff}
@media(max-width:700px){.weekly-public-head-icon{width:32px;height:32px;flex-basis:32px}.weekly-public-chart-summary{justify-content:flex-start}.weekly-public-donut-layout{grid-template-columns:1fr;gap:18px;min-height:0}.weekly-public-donut{width:min(250px,82vw)}.weekly-public-contact-panel .pb{padding-top:18px;padding-bottom:18px}.weekly-public-category-row{grid-template-columns:1fr}.weekly-public-category-row>b{justify-self:start}}
@media(prefers-reduced-motion:reduce){#content .panel,.weekly-public-trend .dot,.weekly-public-donut .donut-segment,.weekly-public-category-fill{transition:none!important}}

/* v126 — Responsive public trend charts: true fit, no horizontal overflow.
   Weekly + Quarterly public charts scale to their panel width; data/render logic unchanged. */
.weekly-public-chart-shell,.qpub-chart-shell{width:100%;min-width:0;max-width:100%}
.weekly-public-trend-wrap,.qpub-trend-wrap{position:relative;width:100%;min-width:0;max-width:100%;overflow:visible!important}
.weekly-public-trend,.qpub-trend{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;overflow:visible}
@media(max-width:700px){.weekly-public-trend,.qpub-trend{min-width:0!important;width:100%!important;height:auto!important}}


/* v127 — Public graph typography readability. Presentation only; data logic unchanged. */
/* Weekly public trend */
.weekly-public-chart-summary span{font-size:10px!important;padding:6px 9px!important}
.weekly-public-chart-summary b{font-size:11px!important}
.weekly-public-trend .value-label{font-size:12px!important}
.weekly-public-trend .axis-label{font-size:10px!important;font-weight:850!important}
#content .chart-legend{font-size:13px!important;gap:16px}
#content .legend-dot{width:10px;height:10px}
.weekly-public-tooltip{font-size:11px!important}
/* Weekly public contact/category charts */
.weekly-public-category-row,.weekly-public-category-row strong{font-size:12px!important}
.weekly-public-category-row>b{font-size:11px!important}
.weekly-public-donut .donut-caption{font-size:9px!important;font-weight:950!important}
.weekly-public-donut .donut-total{font-size:20px!important}
.weekly-public-donut-layout .piev-row small{font-size:10px!important}
.weekly-public-donut-layout .piev-row b{font-size:25px!important}

/* Quarterly public trends + chart labels */
.qpub-chart-summary span{font-size:10px!important;padding:6px 9px!important}
.qpub-chart-summary b{font-size:11px!important}
.qpub-trend .value-label{font-size:12px!important}
.qpub-trend .axis-label{font-size:10px!important;font-weight:850!important}
.qpub-hover-tooltip{font-size:11px!important}
.qpub-bar,.qpub-bar strong{font-size:12px!important}
.qpub-bar>b{font-size:11px!important}
.qpub-donut .donut-caption{font-size:9px!important;font-weight:950!important}
.qpub-donut .donut-total{font-size:20px!important}
.qpub-donut-layout .piev-row small{font-size:10px!important}
.qpub-donut-layout .piev-row b{font-size:25px!important}
.qpub-platform-name{font-size:12px!important}
.qpub-platform-head b{font-size:9px!important}
.qpub-platform-metrics small{font-size:10px!important}
.qpub-platform-metrics strong{font-size:16px!important}

@media(max-width:700px){
  .weekly-public-chart-summary span,.qpub-chart-summary span{font-size:9px!important;padding:5px 8px!important}
  .weekly-public-chart-summary b,.qpub-chart-summary b{font-size:10px!important}
  .weekly-public-trend .value-label,.qpub-trend .value-label{font-size:11px!important}
  .weekly-public-trend .axis-label,.qpub-trend .axis-label{font-size:9px!important}
  .weekly-public-category-row,.weekly-public-category-row strong,.qpub-bar,.qpub-bar strong{font-size:11px!important}
}



/* v128 — Larger public graph typography. Presentation only; data/API logic unchanged. */
/* Weekly public */
.weekly-public-chart-summary span{font-size:12px!important;padding:7px 11px!important}
.weekly-public-chart-summary b{font-size:13px!important}
.weekly-public-trend .value-label{font-size:15px!important;font-weight:950!important}
.weekly-public-trend .axis-label{font-size:12px!important;font-weight:900!important}
#content .chart-legend{font-size:15px!important;gap:18px}
#content .legend-dot{width:11px;height:11px}
.weekly-public-tooltip{font-size:12px!important}
.weekly-public-category-row,.weekly-public-category-row strong{font-size:14px!important}
.weekly-public-category-row>b{font-size:13px!important}
.weekly-public-donut .donut-caption{font-size:10px!important}
.weekly-public-donut .donut-total{font-size:23px!important}
.weekly-public-donut-layout .piev-row small{font-size:12px!important}
.weekly-public-donut-layout .piev-row span{font-size:12px!important}
.weekly-public-donut-layout .piev-row b{font-size:27px!important}

/* Quarterly public */
.qpub-chart-summary span{font-size:12px!important;padding:7px 11px!important}
.qpub-chart-summary b{font-size:13px!important}
.qpub-trend .value-label{font-size:15px!important;font-weight:950!important}
.qpub-trend .axis-label{font-size:12px!important;font-weight:900!important}
.qpub-hover-tooltip{font-size:12px!important}
.qpub-bar,.qpub-bar strong{font-size:14px!important}
.qpub-bar>b{font-size:13px!important}
.qpub-donut .donut-caption{font-size:10px!important}
.qpub-donut .donut-total{font-size:23px!important}
.qpub-donut-layout .piev-row small{font-size:12px!important}
.qpub-donut-layout .piev-row span{font-size:12px!important}
.qpub-donut-layout .piev-row b{font-size:27px!important}
.qpub-platform-name{font-size:14px!important}
.qpub-platform-head b{font-size:10px!important}
.qpub-platform-metrics small{font-size:11px!important}
.qpub-platform-metrics strong{font-size:18px!important}

@media(max-width:700px){
  .weekly-public-chart-summary span,.qpub-chart-summary span{font-size:10px!important;padding:6px 8px!important}
  .weekly-public-chart-summary b,.qpub-chart-summary b{font-size:11px!important}
  .weekly-public-trend .value-label,.qpub-trend .value-label{font-size:13px!important}
  .weekly-public-trend .axis-label,.qpub-trend .axis-label{font-size:10.5px!important}
  .weekly-public-category-row,.weekly-public-category-row strong,.qpub-bar,.qpub-bar strong{font-size:12px!important}
  #content .chart-legend{font-size:13px!important}
}



/* v199 — Public dashboard navigation sizing consistency only. */
.public-report-switch{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  width:min(100%,500px);
  box-sizing:border-box;
}
.public-report-switch button{
  width:100%;
  min-width:0;
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  white-space:nowrap;
  box-sizing:border-box;
}
#publicWeekControl select,
#publicMonthlyControl select,
#publicQuarterControl select{
  min-height:38px;
  font-family:inherit;
  font-size:11px;
  font-weight:700;
  line-height:1.2;
  box-sizing:border-box;
}
@media(max-width:560px){
  .public-report-switch{width:100%;}
  .public-report-switch button{padding-left:8px;padding-right:8px;font-size:10px;}
}

/* v238 — Responsive hardening across protected Public viewer screens. Layout only. */
html,body{max-width:100%;overflow-x:hidden}
@media(max-width:600px){
  .public-login-card,.public-login-visual,.public-login-form-wrap,.public-login-form-card{width:100%;max-width:100%;min-width:0}
  .shell,.top,.brand,.brand-copy,.actions,.hero,.panel,.pb,.qpub-panel,.qpub-body,.quarter-public-hero{min-width:0;max-width:100%}
  .public-action-menu{max-width:calc(100vw - 24px)}
  .hero>*{min-width:0;max-width:100%}
  .period{min-width:0;max-width:100%;width:100%}
  .qpub-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:420px){
  .public-login-shell{padding:10px}
  .public-login-visual{padding:22px;min-height:260px}
  .public-login-form-wrap{padding:24px 18px}
  .public-login-visual h1{font-size:30px}
  .public-login-form-card h2{font-size:26px}
  .shell{padding:8px}
  .top{padding:10px}
  .brand img{width:104px}
  .brand strong{font-size:14px}
  .brand span{display:none}
  .public-action-btn,.signout-btn{padding:8px 9px;font-size:10px}
  #publicMonthlyControl>div,#publicQuarterControl>div{grid-template-columns:1fr!important}
  .hero{padding:20px 18px;border-radius:22px}
  .hero h1{font-size:28px}
  .quarter-public-hero{padding:20px;border-radius:20px;min-height:0}
  .quarter-public-hero h1{font-size:28px}
  .qpub-body,.pb{padding-left:14px;padding-right:14px}
}

/* v238.2 — contain generated Weekly platform tables on phones. */
@media(max-width:600px){
  #content .panel .pb>table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
