
: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%);
}
button,input,textarea,select{font:inherit}
.hidden{display:none!important}
.readonly .editor-only{display:none!important}
.readonly .editor-control{pointer-events:none;opacity:.78}

/* LOGIN */
.login-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px;
  background:
    radial-gradient(circle at 15% 10%, rgba(31,111,255,.18), transparent 25%),
    radial-gradient(circle at 85% 20%, rgba(20,164,77,.15), transparent 20%),
    linear-gradient(145deg,#07111f,#12213a 45%,#0e1830 100%);
}
.login-card{
  width:min(1100px,100%);
  min-height:680px;
  background:rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
  border:1px solid rgba(255,255,255,.14);
  border-radius:28px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  box-shadow:0 30px 60px rgba(0,0,0,.28);
}
.login-visual{
  padding:42px;
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:
    linear-gradient(180deg, rgba(10,47,120,.86), rgba(8,24,52,.72)),
    radial-gradient(circle at top left, rgba(20,164,77,.30), transparent 28%);
}
.login-brand{
  display:flex;align-items:center;gap:18px;
}
.login-logo{
  width:200px;max-width:100%;height:auto;display:block;filter: drop-shadow(0 8px 16px rgba(0,0,0,.20));
}
.login-hero h1{
  margin:0;
  font-size:52px;
  line-height:.95;
  letter-spacing:-1.7px;
}
.login-hero p{
  margin:0;
  max-width:520px;
  color:rgba(255,255,255,.82);
  font-size:16px;
  line-height:1.6;
}
.login-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.chip{
  padding:10px 12px;border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.14);
  font-size:12px;font-weight:800;color:#fff;
}
.login-foot{
  color:rgba(255,255,255,.64);
  font-size:12px;
}
.login-form-wrap{
  background:#fff;
  padding:42px 38px;
  display:flex;align-items:center;justify-content:center;
}
.login-form-card{width:min(420px,100%)}
.kicker{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)
}
.dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.login-form-card h2{
  font-size:34px;line-height:1;margin:18px 0 10px;letter-spacing:-1px
}
.login-form-card .sub{
  color:var(--muted);font-size:14px;line-height:1.5;margin:0 0 22px
}
.field{display:block;font-size:12px;font-weight:800;color:#61738f;margin-top:14px}
.field input{
  width:100%;margin-top:7px;padding:13px 14px;border:1px solid var(--line);
  border-radius:14px;background:#fff
}
.btn{
  border:0;border-radius:14px;padding:12px 16px;font-weight:900;cursor:pointer;
  transition:.18s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff}
.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--text)}
.btn.ghost{background:#edf2fa;color:var(--text)}
.btn.wide{width:100%}
.auth-message{min-height:20px;font-size:12px;color:var(--muted);margin-top:12px}
.auth-message.error{color:var(--red)}

/* APP */
.app-shell{
  max-width:1440px;
  margin:0 auto;
  padding:20px
}
.app-shell.hidden{display:none!important}
.legacy-tabs,.admin-sidebar{display:none!important}

/* CLEAN HAMBURGER NAVIGATION */
.menu-toggle{
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid #dbe5f1;
  background:#fff;
  color:var(--navy);
  display:inline-grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(10,47,120,.07);
  transition:.18s ease
}
.menu-toggle:hover{
  transform:translateY(-1px);
  background:#f7fbff
}
.menu-toggle svg{
  width:21px;
  height:21px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round
}

.nav-drawer{
  position:fixed;
  inset:0;
  z-index:90;
  display:none
}
.nav-drawer.open{display:block}
.nav-drawer-backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,22,40,.42);
  backdrop-filter:blur(4px)
}
.nav-drawer-panel{
  position:absolute;
  top:0;
  left:0;
  bottom:0;
  width:min(360px,86vw);
  background:#fff;
  box-shadow:0 24px 70px rgba(8,24,52,.24);
  padding:18px 16px 18px;
  display:flex;
  flex-direction:column;
  overflow:auto
}
.drawer-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-bottom:14px;
  border-bottom:1px solid #e8eef5;
  margin-bottom:12px
}
.drawer-brand{
  display:flex;
  align-items:center;
  min-width:0
}
.drawer-brand-copy strong{
  display:block;
  font-size:15px;
  line-height:1.15;
  color:#11223b
}
.drawer-brand-copy span{
  display:block;
  margin-top:4px;
  font-size:11px;
  color:#71839a
}
.drawer-close{
  width:42px;
  height:42px;
  border:none;
  border-radius:12px;
  background:#f2f6fb;
  color:#203654;
  display:grid;
  place-items:center;
  cursor:pointer
}
.drawer-close svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round
}
.drawer-section-label{
  margin:12px 8px 8px;
  font-size:9px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#95a4b7
}
.drawer-nav{
  display:grid;
  gap:8px
}
.drawer-nav .tab-btn{
  width:100%;
  border:1px solid #e4ebf5;
  background:#fff;
  color:var(--text);
  padding:11px;
  border-radius:16px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  align-items:center;
  gap:11px;
  text-align:left;
  font-weight:850;
  cursor:pointer;
  transition:.18s ease
}
.drawer-nav .tab-btn:hover{
  background:#f8fbff;
  border-color:#d7e3f1
}
.drawer-nav .tab-btn.active{
  background:linear-gradient(135deg,var(--navy),var(--navy2));
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 22px rgba(10,47,120,.18)
}
.drawer-nav .sidebar-icon{
  width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;
  background:#eef4ff;color:var(--navy);
  border:1px solid #dde8f6
}
.drawer-nav .tab-btn.active .sidebar-icon{
  background:rgba(255,255,255,.14);
  color:#fff;
  border-color:rgba(255,255,255,.18)
}
.drawer-nav .sidebar-icon svg{
  width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round
}
.sidebar-copy{min-width:0}
.sidebar-copy strong{display:block;font-size:12px;line-height:1.15}
.sidebar-copy small{display:block;margin-top:3px;color:#8392a7;font-size:9px;line-height:1.25;font-weight:650}
.drawer-nav .tab-btn.active .sidebar-copy small{color:rgba(255,255,255,.72)}
.topbar{
  background:rgba(255,255,255,.82);
  backdrop-filter: blur(12px);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:var(--shadow);
  border-radius:22px;
  padding:14px 16px;
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  position:sticky;top:12px;z-index:30;
}
.topbar-left{
  display:flex;align-items:center;gap:16px;min-width:0
}
.topbar-logo{
  width:170px;height:auto;display:block
}
.topbar-copy strong{display:block;font-size:20px;letter-spacing:-.4px}
.topbar-copy span{display:block;color:var(--muted);font-size:13px;margin-top:3px}
.tabs{
  display:flex;gap:8px;flex-wrap:wrap
}
.tab-btn{
  border:1px solid var(--line);background:#fff;color:var(--text);
  padding:10px 14px;border-radius:999px;font-weight:800;cursor:pointer
}
.tab-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.topbar-right{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap
}
.user-chip{
  border:1px solid var(--line);
  background:#fff;
  padding:10px 13px;
  border-radius:999px;
  font-size:12px;
  white-space:nowrap
}
.action-menu-wrap{position:relative}
.action-menu-btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px
}
.action-menu-btn svg{
  width:17px;height:17px;
  fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round
}
.action-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  width:min(330px,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:80
}
.action-menu.open{display:block}
.action-menu-head{
  padding:10px 11px 11px;
  border-bottom:1px solid #edf1f6;
  margin-bottom:7px
}
.action-menu-head strong{
  display:block;
  font-size:12px;
  color:#17283f
}
.action-menu-head span{
  display:block;
  margin-top:3px;
  color:#74869c;
  font-size:10px
}
.action-list{display:grid;gap:5px}
.action-list .action-item{
  width:100%;
  display:flex;
  align-items:center;
  gap:11px;
  text-align:left;
  padding:10px 11px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#20334d;
  font-weight:800;
  font-size:12px;
  cursor:pointer;
  text-decoration:none
}
.action-list .action-item:hover{background:#f3f7fc}
.action-list .action-item.primary-action{
  background:#eef4ff;
  color:var(--navy)
}
.action-list .action-icon{
  width:32px;height:32px;border-radius:10px;
  display:grid;place-items:center;
  background:#f1f5fa;color:#31577f;
  flex:0 0 32px
}
.action-list .action-icon svg{
  width:16px;height:16px;
  fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round
}
.action-copy{min-width:0}
.action-copy strong{display:block;font-size:11px}
.action-copy small{display:block;margin-top:2px;font-size:9px;color:#8292a7;font-weight:650}
.action-divider{height:1px;background:#edf1f6;margin:5px 3px}

.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:1fr auto;
  gap:18px;
  align-items:end;
}
.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-card{
  align-self:center;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  padding:16px 18px;
  min-width:290px;
}
.period-card .label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#c8dbff;font-weight:900}
.period-title{margin-top:10px;font-size:28px;font-weight:900;line-height:1.05}
.period-status{
  margin-top:10px;display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:800;color:#e5f0ff
}
.period-status i{width:9px;height:9px;border-radius:50%;background:#3df086}

.kpi-grid{
  margin-top:18px;
  display:grid;grid-template-columns:repeat(5,1fr);gap:14px
}
.kpi{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
  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 .value{
  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}
.metric-type{font-size:10px;color:#6b7b90;font-weight:800}
.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}
.week-tag.auto{background:#e8f7ef;color:#137a4b}
.kpi .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-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.12;flex:1}
.delta-copy span{font-size:12px;font-weight:900}
.delta-copy 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}

.grid-2{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px
}
.panel{
  background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column
}
.panel-head{
  padding:16px 18px 10px;border-bottom:1px solid #edf1f7;display:flex;justify-content:space-between;gap:12px;align-items:flex-start
}
.panel-head small{
  display:block;font-size:10px;font-weight:900;color:#7b8ba4;letter-spacing:.12em;text-transform:uppercase
}
.panel-head h2{
  margin:6px 0 0;font-size:20px;letter-spacing:-.5px
}

/* SHENA GREEN DASHBOARD SECTION HEADERS */
.panel > .panel-head.shena-green{
  padding:17px 18px 15px;
  background:linear-gradient(135deg,#008f49 0%,#00a651 100%);
  border-bottom:1px solid #008447;
  color:#fff;
  align-items:center
}
.panel > .panel-head.shena-green small{
  color:rgba(255,255,255,.78);
  text-transform:uppercase;
  letter-spacing:.13em
}
.panel > .panel-head.shena-green h2{
  margin-top:5px;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.045em;
  font-size:18px;
  font-weight:950
}
.panel > .panel-head.shena-green .badge{
  background:rgba(255,255,255,.17);
  color:#fff;
  border:1px solid rgba(255,255,255,.28);
  box-shadow:none
}

.panel-body{padding:16px 18px 18px}
.panel-body-center{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}
.panel-body-center > *{width:100%}
.panel-body-center .chart-box{display:flex;align-items:center;justify-content:center;height:260px}
.panel-body-center .chart-box svg{max-width:100%;max-height:100%}
.panel-body-center .chart-legend{margin-top:0}
.panel-body-center .performance-summary,.panel-body-center .reputation{margin:auto 0}.panel-body-center #ceComparison{margin:0!important;align-self:stretch}
.panel-body-center .table-wrap{width:100%}

.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 10px;border-bottom:1px solid #edf1f7;font-size:13px}
th{
  text-align:left;font-size:11px;color:#72829b;text-transform:uppercase;letter-spacing:.08em
}
td:nth-child(n+2),th:nth-child(n+2){text-align:center}
.total-row td{font-weight:900;background:#f8fafc}
.platform-name{display:flex;align-items:center;gap:10px;font-weight:800}
.platform-logo{
  width:24px;
  height:24px;
  flex:0 0 24px;
  object-fit:contain;
  display:block;
}
.platform-dot{display:none}
.mini-track{
  height:8px;background:#edf2fb;border-radius:999px;overflow:hidden;min-width:85px
}
.mini-fill{height:100%;background:linear-gradient(90deg,var(--blue),#58a1ff)}
.mini-wrap{display:flex;align-items:center;gap:8px;justify-content:center}

.chart-box{height:260px}
.chart-box svg{width:100%;height:100%}
.chart-legend{display:flex;justify-content:center;gap:14px;margin-top:8px;font-size:12px;font-weight:900;color:var(--navy)}
.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle;background:#1767d2}

.stats-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px
}
.note-list{margin:0;padding-left:18px}
.note-list li{margin:7px 0;font-size:14px;line-height:1.42}
.note-list li::marker{color:var(--green)}
.reputation{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:18px;
  align-items:center;
  border-radius:18px;
  padding:18px;
  transition:background .2s ease,border-color .2s ease
}
.reputation.positive{background:#edf8f1;border:1px solid #cfe8d8}
.reputation.neutral{background:#eef6ff;border:1px solid #cfe0f5}
.reputation.stable{background:#edf9f7;border:1px solid #cde9e4}
.reputation.watch{background:#fff7e5;border:1px solid #eed9a1}
.reputation.elevated{background:#fff0ef;border:1px solid #edcbc8}
.reputation.no-signal,.reputation.under-review{background:#f3f6fa;border:1px solid #dbe3ed}
.reputation .shield{
  width:95px;
  height:95px;
  margin:auto;
  display:grid;
  place-items:center
}
.reputation .shield svg{width:95px;height:95px;display:block}
.reputation .risk{
  font-size:28px;
  font-weight:950;
  line-height:1;
  color:#263548
}
.reputation .subtitle{
  margin:5px 0 8px;
  color:#263548;
  font-size:18px;
  font-weight:900
}
.reputation .copy{
  margin:0;
  color:#263548;
  font-size:14px;
  line-height:1.45
}

.ce-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:6px 0 0}
.ce-stat{border:1px solid #e3e9f0;border-radius:16px;padding:16px;background:#fff}
.ce-kicker{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#75849a}
.ce-value{font-size:38px;line-height:1;font-weight:950;color:#132238;margin-top:8px}
.ce-percent{font-size:12px;font-weight:800;color:#67768b;margin-top:6px}
.ce-bar-wrap{grid-column:1/-1;padding-top:3px}
.ce-bar{height:14px;border-radius:999px;background:#edf1f5;overflow:hidden;display:flex}
.ce-bar-enq{background:#275d9f}
.ce-bar-concern{background:#d48321}
.ce-legend{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:9px;font-size:11px;color:#68788f}
.ce-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}
.ce-dot.enq{background:#275d9f}.ce-dot.concern{background:#d48321}
.ce-total{font-weight:900;color:#132238}
.ce-empty{grid-column:1/-1;text-align:center;padding:48px 12px;color:#7b889a;font-size:13px}
@media(max-width:600px){.reputation{grid-template-columns:1fr;text-align:center}.ce-panel{grid-template-columns:1fr}.ce-bar-wrap,.ce-empty{grid-column:1}}

/* EDITORS */
.tab{display:none}
.tab.active{display:block}
.workspace{
  margin-top:14px;
  background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:20px
}
.workspace h2{margin:0 0 4px;font-size:28px;letter-spacing:-.8px}
.workspace h2.weekly-data-title{color:#111820;text-transform:uppercase}
.workspace .sub{margin:0 0 18px;color:var(--muted)}
.editor-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px
}
.editor-card{
  border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden
}
.editor-card-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:#fff;padding:14px 16px;cursor:pointer;text-align:left;color:inherit;font:inherit}
.editor-card-toggle:hover{background:#f8fafc}
.editor-card-heading{min-width:0}
.editor-card-heading h3{
  margin:0;
  color:var(--navy);
  font-size:16px;
  display:flex;
  align-items:center;
  gap:9px;
}
.editor-card h3 img{
  width:26px;
  height:26px;
  object-fit:contain;
}
.editor-card-summary{margin-top:5px;font-size:10px;color:#74849a;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.editor-card-body{padding:0 16px 16px;border-top:1px solid #edf1f5}
.editor-card-body>label:first-child{margin-top:14px}
.editor-card label,.form-grid label{display:block;font-size:12px;font-weight:800;color:#667891}
.editor-card input,.form-grid input,.form-grid textarea,.form-grid select{
  width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff
}
.editor-card label + label{margin-top:10px}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}
.form-grid.full{grid-template-columns:1fr}
.api-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.api-card{
  border:1px solid var(--line);border-radius:18px;padding:16px;background:#f8fbff
}
.api-card b,.api-card span{display:block}
.api-card span{margin-top:4px;color:var(--muted);font-size:13px}
.badge{
  display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;font-size:11px;font-weight:900;
  background:#eef4ff;color:var(--navy)
}
.badge.green{background:var(--green-soft);color:#17733e}

@media(max-width:1180px){
  .login-card{grid-template-columns:1fr}
  .kpi-grid{grid-template-columns:repeat(3,1fr)}
  .grid-2,.stats-grid,.api-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:repeat(2,1fr)}
  .editor-grid{grid-template-columns:repeat(2,1fr)}
  .hero{grid-template-columns:1fr;min-height:auto;align-items:start}
}
@media(max-width:760px){
  .app-shell{padding:12px}
  .topbar{padding:12px}
  .topbar-left{gap:12px;align-items:center}
  .topbar-logo{width:132px}
  .topbar-copy strong{font-size:16px}
  .topbar-copy span{font-size:11px}
  .topbar-right{gap:6px}
  .topbar-right .user-chip{display:none}
  .action-menu-btn{min-height:40px;padding:9px 11px}
  .menu-toggle{width:42px;height:42px;border-radius:12px}
  .drawer-brand img{width:108px}
  .drawer-brand-copy strong{font-size:14px}
  .drawer-brand-copy span{font-size:10px}
  .drawer-nav .tab-btn{grid-template-columns:36px minmax(0,1fr);padding:10px}
  .drawer-nav .sidebar-icon{width:36px;height:36px;border-radius:11px}
  .drawer-nav .sidebar-icon svg{width:16px;height:16px}
  .sidebar-copy small{display:none}
  .hero h1{font-size:34px}
  .period-title{font-size:22px}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .editor-grid,.form-grid,.api-grid{grid-template-columns:1fr}
  .reputation{grid-template-columns:1fr}
  .login-hero h1{font-size:38px}
  .login-card{min-height: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}
  .topbar,.nav-drawer,.workspace{display:none!important}
  .app-shell{display:block;padding:0}
  .panel,.kpi,.hero{box-shadow:none}
}

  .workflow-step{margin:14px 0;border:1px solid #e1e7ef;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 6px 18px rgba(16,34,59,.04)}
  .workflow-title{margin:0!important}
  .workflow-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;border:0;background:#fff;padding:16px 18px;cursor:pointer;text-align:left;color:inherit;font:inherit}
  .workflow-toggle:hover{background:#f8fafc}
  .workflow-toggle:focus-visible,.source-toggle:focus-visible,.editor-card-toggle:focus-visible{outline:3px solid rgba(22,70,143,.22);outline-offset:-3px}
  .workflow-toggle-copy{display:flex;align-items:center;gap:10px;min-width:0}
  .workflow-toggle-copy h3{margin:0;font-size:18px;color:#111820;text-transform:uppercase;letter-spacing:.04em}
  .collapse-chevron{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#f2f5f8;color:#52647a;flex:0 0 auto;transition:transform .2s ease,background .2s ease}
  .collapse-chevron svg{width:16px;height:16px}
  .workflow-step.is-open>.workflow-title .collapse-chevron,.source-card.is-open>.source-toggle .collapse-chevron,.editor-card.is-open>.editor-card-toggle .collapse-chevron{transform:rotate(180deg);background:#eaf2ff;color:#16468f}
  .workflow-collapse-body{padding:0 18px 18px}
  .workflow-collapse-body[hidden],.source-collapse-body[hidden],.editor-card-body[hidden]{display:none!important}
  .workflow-step:not(.is-open) .workflow-toggle{border-bottom:0}
  .workflow-title{display:flex;align-items:center;gap:10px;margin-bottom:10px}
  .step-no{width:28px;height:28px;border-radius:50%;background:#132238;color:white;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:0 0 auto}
  .workflow-title h3{margin:0;font-size:18px;color:#111820;text-transform:uppercase;letter-spacing:.04em}
  .source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .source-card{border:1px solid #dfe5ec;border-radius:16px;background:white;box-shadow:0 4px 14px rgba(20,36,55,.04);overflow:hidden}
  .source-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .source-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:#fff;padding:14px 16px;cursor:pointer;text-align:left;color:inherit;font:inherit}
  .source-toggle:hover{background:#f8fafc}
  .source-toggle-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;flex:1}
  .source-toggle-side{display:flex;align-items:center;gap:8px;flex:0 0 auto}
  .source-collapse-body{padding:0 16px 16px}
  .source-name{display:flex;align-items:center;gap:9px;font-weight:800;color:#132238}
  .source-name img{width:24px;height:24px;object-fit:contain}
  .source-help{font-size:12px;color:#66758a;line-height:1.45;margin:7px 0 12px}
  .source-actions{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}
  .source-actions input[type=file]{min-width:0;width:100%}
  .source-status{margin-top:9px;font-size:11px;color:#66758a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .source-metrics{margin-top:10px;padding-top:10px;border-top:1px solid #edf0f4;font-size:12px;color:#35445a}
  .source-metrics strong{color:#132238}
  .source-mode{display:flex;align-items:center;gap:8px;margin-top:10px}
  .source-mode label{font-size:11px;color:#66758a;font-weight:700}
  .source-mode select{padding:7px 9px;border:1px solid #dfe5ec;border-radius:9px;background:white;font-size:12px}
  .workflow-note{background:#f7f9fb;border:1px solid #e2e7ed;border-radius:12px;padding:11px 13px;font-size:12px;color:#5c6878;line-height:1.5}
.week-compare-entry{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
.week-entry-card{border:1px solid #dfe6f2;border-radius:18px;padding:16px;background:#fff;box-shadow:0 10px 24px rgba(16,34,59,.05)}
.week-entry-card.current{background:linear-gradient(180deg,#f8fbff,#f2f7ff);border-color:#d5e2f6}
.week-entry-card.previous{background:linear-gradient(180deg,#ffffff,#fafbfc)}
.week-entry-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.week-entry-head strong{font-size:13px;color:#132238}
.week-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.week-tag.current{background:#e8f0ff;color:#16468f}.week-tag.previous{background:#f0f2f5;color:#5b6777}
.week-entry-help{font-size:11px;line-height:1.5;color:#6b7b8f;margin-bottom:12px}
.week-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.week-metrics label{display:block;font-size:10px;font-weight:900;color:#667891;text-transform:uppercase;letter-spacing:.05em}
.week-metrics input{width:100%;margin-top:6px;border:1px solid #dce4ee;border-radius:11px;padding:10px 11px;background:#fff;color:#132238;font:inherit;font-weight:800}
.week-metrics input[readonly]{background:#eef4fb;color:#16468f;border-color:#d7e2f1}
.week-metrics label:last-child:nth-child(odd){grid-column:1/-1}
.week-entry-link{margin-top:12px;font-size:10px;color:#718096}
@media(max-width:900px){.week-compare-entry{grid-template-columns:1fr}}
@media(max-width:600px){.week-metrics{grid-template-columns:1fr}.week-metrics label:last-child:nth-child(odd){grid-column:auto}}
  .section-divider{height:1px;background:#e8edf2;margin:24px 0}
  @media(max-width:800px){.source-grid{grid-template-columns:1fr}.source-actions{grid-template-columns:1fr}.source-actions .btn{width:100%}}


.pie-wrap{display:grid;grid-template-columns:minmax(190px,240px) 1fr;gap:24px;align-items:center;min-height:250px;padding:6px 4px}
.pie-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)
}
.pie-empty{background:#eef2f6}
.pie-legend{display:grid;gap:13px}
.pie-legend-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}
.pie-swatch{width:12px;height:12px;border-radius:3px}
.pie-legend-copy{min-width:0}
.pie-legend-copy strong{display:block;font-size:12px;color:#172b46}
.pie-legend-copy span{display:block;margin-top:3px;font-size:10px;color:#78879a}
.pie-legend-value{text-align:right;font-size:18px;font-weight:950;color:#102e67}
.pie-total{padding:11px 12px;border-radius:13px;background:#f5f8fb;color:#53657b;font-size:11px}
.pie-total strong{color:#102e67}
@media(max-width:650px){.pie-wrap{grid-template-columns:1fr}}


.users-layout{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:18px}
.user-form-card,.user-list-card{background:#fff;border:1px solid #e1e7ef;border-radius:18px;padding:18px}
.user-form-card h3,.user-list-card h3{margin:0 0 5px;color:#132238}
.user-form-card p,.user-list-card p{margin:0 0 16px;color:#748297;font-size:12px;line-height:1.45}
.user-form{display:grid;gap:13px}
.user-form label{font-size:11px;font-weight:900;color:#50627a}
.user-form input,.user-form select{width:100%;margin-top:6px;border:1px solid #dce3eb;border-radius:11px;padding:11px 12px;font:inherit;background:#fff}
.user-form-note{padding:11px 12px;border-radius:12px;background:#f4f7fb;color:#607087;font-size:11px;line-height:1.5}
.user-msg{min-height:18px;font-size:12px;font-weight:800}.user-msg.ok{color:#138a59}.user-msg.error{color:#b42318}
.user-table-wrap{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;min-width:680px}
.user-table th,.user-table td{padding:11px 9px;border-bottom:1px solid #edf1f5;font-size:11px;text-align:left}
.user-table th{text-transform:uppercase;letter-spacing:.07em;color:#74849a;font-size:9px}
.role-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.role-admin{background:#edf3ff;color:#184c9c}.role-editor{background:#e9f7ef;color:#087a3f}.role-viewer{background:#f2f4f7;color:#58677a}
.user-status{font-weight:800}.user-status.active{color:#138a59}.user-status.invited{color:#a66b00}
.user-actions{display:flex;justify-content:flex-end;gap:8px}
.btn-danger{border:1px solid #efc8c5;background:#fff5f4;color:#b42318;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:900;cursor:pointer}
.btn-danger:hover{background:#ffeceb}
.btn-danger:disabled{opacity:.45;cursor:not-allowed}
.self-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef4ff;color:#16468f;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
@media(max-width:900px){.users-layout{grid-template-columns:1fr}}

/* v65 strict weekly reporting */
.period-meta{margin-top:12px;display:grid;gap:8px}
.bulletin-status-pill{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.bulletin-status-pill.draft{background:#fff3cd;color:#8a5b00;border:1px solid rgba(255,222,124,.35)}
.bulletin-status-pill.final{background:#daf5e5;color:#08733c;border:1px solid rgba(128,230,170,.35)}
.period-neighbours{display:grid;gap:3px;color:#dbe7ff;font-size:10px;line-height:1.35}
.period-nav{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.period-nav button{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.10);color:#fff;border-radius:11px;padding:8px 10px;font-size:10px;font-weight:850;cursor:pointer}
.period-nav button:hover{background:rgba(255,255,255,.17)}
.archive-box{padding:10px 11px;border:1px solid #e4ebf5;border-radius:14px;background:#f8fbff}
.archive-box label{display:block;margin-bottom:6px;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.10em;color:#8191a5}
.archive-box select{width:100%;border:1px solid #dbe4ef;background:#fff;color:#20334d;border-radius:10px;padding:9px 10px;font:inherit;font-size:11px;font-weight:750}
.archive-structured-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.archive-structured-grid .archive-report-field{grid-column:1/-1}
.archive-structured-grid label{margin:0}
.archive-structured-note{margin-top:7px;font-size:9px;line-height:1.35;color:#718399}
@media(max-width:760px){.archive-structured-grid{grid-template-columns:1fr}.archive-structured-grid .archive-report-field{grid-column:auto}}
.period-lock-note{margin-top:10px;display:flex;align-items:center;gap:8px;font-size:11px;color:#65758a}
.period-lock-note strong{color:#1c314c}
.bulletin-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}
.final-lock-banner{display:none;margin:12px 0 0;padding:11px 13px;border-radius:12px;background:#eef8f2;border:1px solid #d4ebdc;color:#17653a;font-size:11px;font-weight:750}
.final-lock-banner.show{display:block}
#endDate[readonly]{background:#f5f7fa;color:#596a80}
@media(max-width:760px){.period-nav{width:100%}.period-nav button{flex:1}.archive-box{min-width:235px}}
@media print{.bulletin-footer{border:0;background:#fff;padding-top:10px}}


/* v70 admin login brand alignment */
.admin-login-brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:24px;
  margin-bottom:26px;
}
.admin-login-logo{
  width:190px!important;
  max-width:42%;
  height:auto!important;
  object-fit:contain;
  display:block;
  margin:0!important;
  position:static!important;
  transform:none!important;
}
.admin-login-title{
  margin:0!important;
  max-width:720px;
  font-size:58px!important;
  line-height:1.02!important;
  letter-spacing:-1.8px!important;
  position:static!important;
  transform:none!important;
}
.login-hero{
  margin-top:0!important;
}
@media(max-width:900px){
  .admin-login-logo{width:165px!important;max-width:46%}
  .admin-login-title{font-size:46px!important;line-height:1.03!important}
}
@media(max-width:560px){
  .admin-login-brand{gap:18px;margin-bottom:20px}
  .admin-login-logo{width:145px!important;max-width:52%}
  .admin-login-title{font-size:36px!important;letter-spacing:-1px!important}
}

/* 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: trend header and legend are intentionally identical in admin/public. */
.chart-legend{color:#263548}


/* v76 full-QA consistency */
.stats-grid{grid-template-columns:1fr 1fr}
.panel-head.shena-green{min-height:70px;box-sizing:border-box}
.chart-box 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;
}


/* 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;
}


/* v82 — parked draft workflow */
.parked-draft-btn{
  width:100%;
  margin-top:10px;
  padding:9px 11px;
  border-radius:11px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:10px;
  font-weight:850;
  text-align:center;
  cursor:pointer;
}
.parked-draft-btn:hover{background:rgba(255,255,255,.17)}


/* v97 — Reputational Watch moderation inbox + Threads OAuth */
.reputation-review-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.reputation-review-stats .rep-stat{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #dfe7f1;border-radius:999px;background:#fff;font-size:12px;font-weight:800;color:#31445d}
.reputation-review-stats .rep-stat strong{font-size:13px;color:#10233f}
.rep-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0}
.rep-toolbar-left{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rep-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.rep-summary-card{border:1px solid #dfe7f1;background:#fff;border-radius:14px;padding:12px 13px;min-width:0}
.rep-summary-card small{display:block;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#6e7f95;font-size:10px;margin-bottom:5px}
.rep-summary-card strong{font-size:22px;color:#10233f}
.rep-summary-card.pending strong{color:#9a6200}
.rep-summary-card.positive strong{color:#198754}
.rep-summary-card.neutral strong{color:#5e6f84}
.rep-summary-card.negative strong{color:#b42318}
.rep-neutral-explainer{margin:9px 0 0;color:#66788e;font-size:11px;line-height:1.45}.rep-neutral-explainer strong{color:#315f93}
.rep-connector-note{padding:10px 12px;border-radius:12px;background:#f4f7fb;border:1px solid #e0e7f0;color:#53667e;font-size:12px;margin-bottom:14px}
.rep-inbox{display:grid;gap:10px}
.rep-empty{padding:24px;border:1px dashed #c9d5e4;border-radius:14px;text-align:center;color:#718198;background:#fbfcfe}
.rep-mention{border:1px solid #dfe7f1;border-radius:15px;background:#fff;padding:14px;box-shadow:0 2px 8px rgba(27,54,93,.04)}
.rep-mention.needs-review{border-left:4px solid #d99a20}
.rep-mention.reviewed{border-left:4px solid #2f8b62}
.rep-mention.excluded{opacity:.72;border-left:4px solid #98a6b8}
.rep-mention-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:9px}
.rep-source{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rep-platform-pill{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:900;border-radius:999px;padding:5px 8px;background:#eef3f8;color:#33475f}
.rep-review-state{font-size:11px;font-weight:800;color:#6d7c90}
.rep-mention-text{white-space:pre-wrap;color:#243850;font-size:13px;line-height:1.55;margin:8px 0 10px;overflow-wrap:anywhere}
.rep-mention-meta{font-size:11px;color:#7b899b;display:flex;gap:10px;flex-wrap:wrap;margin-bottom:11px}
.rep-mention-meta a{color:#1559a9;font-weight:800;text-decoration:none}
.rep-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.rep-sentiment{border:1px solid #d6dfeb;background:#fff;color:#344960;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:850;cursor:pointer}
.rep-sentiment:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(26,53,91,.1)}
.rep-sentiment.active-positive{background:#e9f7ef;border-color:#9ed4b4;color:#16703f}
.rep-sentiment.active-neutral{background:#f1f4f7;border-color:#c5ced9;color:#4a5b70}
.rep-sentiment.active-negative{background:#fff0ef;border-color:#e5aaa5;color:#a52b22}
.rep-sentiment.active-irrelevant{background:#f2f3f5;border-color:#c9cfd7;color:#687583}
.rep-notable{margin-left:auto}
.rep-notable.active{background:#fff7e5;border-color:#dfbd69;color:#8d5b00}
.rep-add-box{margin-top:14px;border:1px solid #dfe7f1;border-radius:14px;background:#fbfcfe;padding:12px}
.rep-add-box summary{cursor:pointer;font-weight:850;color:#27425f}
.rep-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.rep-add-grid label.full{grid-column:1/-1}
.rep-add-grid textarea{min-height:88px;resize:vertical}
@media(max-width:850px){.rep-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rep-summary-card:first-child{grid-column:1/-1}}
@media(max-width:600px){.rep-summary-grid,.rep-add-grid{grid-template-columns:1fr}.rep-summary-card:first-child,.rep-add-grid label.full{grid-column:auto}.rep-mention-head{display:block}.rep-review-state{margin-top:6px}.rep-notable{margin-left:0}}
/* v115 — full reliability audit + resilient save/refresh workflow */
.rep-add-box[open]{background:#fff}
.rep-add-box summary{display:flex;align-items:center;gap:8px}
.rep-manual-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;background:#eef3f8;color:#465a72;font-size:9px;font-weight:950;letter-spacing:.08em}
.rep-manual-banner{margin-top:11px;padding:10px 12px;border-radius:11px;background:#f5f8fc;border:1px solid #e2e8f0;color:#586a80;font-size:11px;line-height:1.5}
.rep-editing-note{margin-top:10px;padding:9px 11px;border-radius:10px;background:#fff7e5;border:1px solid #eed9a1;color:#815b12;font-size:11px;font-weight:800}
.rep-checkbox{display:flex!important;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;background:#f8fafc;border:1px solid #e4e9f0;font-size:11px!important;color:#52647a!important}
.rep-checkbox input{width:auto!important;margin:0}
.rep-form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.rep-manual-action{border:1px solid #d6dfeb;background:#f7f9fc;color:#344960;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:850;cursor:pointer}
.rep-manual-action:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(26,53,91,.1)}
.rep-batch-box{margin-top:12px;border:1px solid #dce6f1;border-radius:12px;background:#f8fbff;overflow:hidden}
.rep-batch-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #e3eaf3;background:#f2f7fc}
.rep-batch-head strong{font-size:11px;color:#26435f}.rep-batch-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#183f78;color:#fff;font-size:10px;font-weight:900}
.rep-batch-list{display:grid;gap:7px;padding:9px}.rep-batch-empty{padding:10px 11px;color:#718197;font-size:11px}
.rep-batch-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;background:#fff;border:1px solid #e1e7ef;border-radius:10px}
.rep-batch-copy{min-width:0}.rep-batch-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:4px;color:#718197;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.rep-batch-text{font-size:11px;color:#30465e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rep-batch-actions{display:flex;gap:5px}.rep-batch-actions button{padding:5px 8px;border-radius:8px;border:1px solid #dbe3ed;background:#fff;color:#435873;font-size:9px;font-weight:850;cursor:pointer}
.rep-batch-actions button:hover{background:#f4f7fb}.rep-batch-actions button[data-batch-remove]{color:#9e3f38}
.rep-batch-save{display:flex;gap:8px;flex-wrap:wrap;padding:0 9px 10px}.rep-batch-save .btn[disabled]{opacity:.5;cursor:not-allowed}
@media(max-width:600px){.rep-batch-item{grid-template-columns:1fr}.rep-batch-actions{justify-content:flex-end}}
/* v116 — simplified Reddit quick entry */
.rep-quick-title{margin:12px 0 2px;font-size:13px;font-weight:900;color:#213d5a}
.rep-quick-subtitle{margin:0 0 10px;color:#6a7c91;font-size:11px;line-height:1.45}
.rep-quick-grid{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(170px,.75fr);gap:10px;margin-top:12px}
.rep-quick-grid label.full{grid-column:1/-1}
.rep-community-detected{grid-column:1/-1;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:#f6f9fc;border:1px solid #e2e9f1;color:#5d7086;font-size:10px}
.rep-community-detected strong{color:#294b70}
.rep-more-options{grid-column:1/-1;border:0;margin:0;padding:0}
.rep-more-options summary{display:inline-flex!important;font-size:10px!important;color:#60758c!important;font-weight:800!important;cursor:pointer}
.rep-more-options .rep-checkbox{margin-top:8px;max-width:320px}
.rep-batch-head small{color:#718197;font-size:9px;font-weight:700;margin-left:7px}
@media(max-width:600px){.rep-quick-grid{grid-template-columns:1fr}.rep-quick-grid label.full,.rep-community-detected,.rep-more-options{grid-column:auto}}

/* v118 — Reddit paste import */
.rep-paste-title{margin:12px 0 3px;font-size:14px;font-weight:950;color:#193d68}
.rep-paste-subtitle{margin:0 0 10px;color:#657a91;font-size:11px;line-height:1.55}
.rep-paste-textarea{min-height:180px!important;resize:vertical}
.rep-paste-helper{grid-column:1/-1;padding:9px 11px;border-radius:10px;background:#f6f9fc;border:1px solid #e2e9f1;color:#60748b;font-size:10px;line-height:1.5}
.rep-paste-helper strong{color:#294c72}
.rep-paste-preview{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:10px;background:#f3f8ff;border:1px solid #dce8f8;color:#4f6681;font-size:10px}
.rep-paste-preview strong{color:#123f7c;font-size:12px}
.rep-paste-preview.warn{background:#fff8e9;border-color:#eedcae;color:#7b6127}
.rep-optional{font-weight:700;color:#7a8ba0;font-size:9px}

/* v98 — Smart Bulletin */
.smart-period-card{margin-top:12px;padding:13px 14px;border:1px solid #dce6f2;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#f5fbf7);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.smart-period-card strong{display:block;color:#102f57;font-size:13px}.smart-period-card span{display:block;color:#667891;font-size:11px;margin-top:3px}.smart-period-card .smart-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.smart-status{display:inline-flex!important;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#e6f6ed;color:#177345!important;font-weight:900;font-size:10px!important;letter-spacing:.03em;text-transform:uppercase}.smart-status.warn{background:#fff4da;color:#916000!important}
.contact-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.contact-source-card{border:1px solid #e1e7ef;border-radius:13px;padding:13px;background:#fff}.contact-source-card h4{margin:0 0 9px;color:#15345f;font-size:13px}.contact-source-card .mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.contact-totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.contact-total{background:#f7f9fc;border:1px solid #e1e7ef;border-radius:12px;padding:10px}.contact-total small{display:block;color:#6d7e93;font-size:10px;font-weight:800;text-transform:uppercase}.contact-total strong{display:block;color:#0f315f;font-size:20px;margin-top:3px}
.category-matrix{margin-top:12px;border:1px solid #e1e7ef;border-radius:13px;overflow:hidden;background:#fff}.category-row{display:grid;grid-template-columns:minmax(240px,1.6fr) minmax(100px,.55fr) minmax(100px,.55fr) minmax(80px,.4fr);gap:8px;align-items:center;padding:9px 12px;border-top:1px solid #edf1f5}.category-row:first-child{border-top:0}.category-row.header{background:#f4f7fb;color:#5e718b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}.category-row .cat-name{font-size:12px;font-weight:800;color:#243a55}.category-row input{width:100%;border:1px solid #d7dfeb;border-radius:8px;padding:7px 8px;font:inherit}.category-row .cat-total{font-size:13px;font-weight:900;color:#0a2f78;text-align:center}
.smart-validation{margin-top:12px;padding:11px 13px;border-radius:12px;border:1px solid #dfe7ef;background:#f8fafc;font-size:12px;line-height:1.5;color:#52647a}.smart-validation.ok{border-color:#bfe2cc;background:#f1faf5;color:#216b42}.smart-validation.warn{border-color:#efd8a6;background:#fff9eb;color:#805d12}.smart-validation.error{border-color:#efc6c6;background:#fff3f3;color:#8b2a2a}.smart-validation ul{margin:6px 0 0 18px;padding:0}
.confirm-row{margin-top:12px;display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border-radius:12px;background:#f7f9fb;border:1px solid #e2e7ed}.confirm-row input{margin-top:2px}.confirm-row label{font-size:12px;color:#40546e;line-height:1.45}.confirm-row strong{color:#173b69}
.smart-notes-preview{display:grid;gap:8px;margin-top:12px}.smart-note{border-left:4px solid #1f6fff;background:#f7f9fc;border-radius:0 10px 10px 0;padding:10px 12px;color:#344961;font-size:12px;line-height:1.5}.smart-monitoring-list{margin:0;padding-left:20px;display:grid;gap:8px;color:#344961;line-height:1.5}.smart-full{grid-column:1/-1}
@media(max-width:800px){.contact-source-grid,.contact-totals{grid-template-columns:1fr}.category-row{grid-template-columns:1fr 1fr}.category-row.header{display:none}.category-row .cat-name{grid-column:1/-1}.category-row .cat-total{text-align:left}}

/* v99 weekly + quarterly reporting */
/* v100 smart Reputational Watch status: positive / neutral / stable / watch / elevated */
.quarterly-workspace{display:grid;gap:16px}.quarterly-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:26px;border-radius:24px;background:linear-gradient(135deg,#0b3479,#174f9e);color:#fff;box-shadow:0 18px 42px rgba(17,55,110,.16)}.quarterly-hero small{font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;opacity:.78}.quarterly-hero h1{margin:7px 0 7px;font-size:32px;line-height:1.05;letter-spacing:-.7px}.quarterly-hero p{max-width:720px;margin:0;color:rgba(255,255,255,.8);font-size:13px;line-height:1.55}.quarter-status-stack{display:grid;justify-items:end;gap:8px;text-align:right;font-size:11px;color:rgba(255,255,255,.78)}.quarter-status-pill{display:inline-flex;padding:7px 11px;border-radius:999px;background:#fff;color:#123d82;font-size:10px;font-weight:950;letter-spacing:.08em}.quarter-status-pill.partial{background:#fff3d6;color:#8a5a00}.quarter-status-pill.complete{background:#def7e8;color:#13733b}.quarter-status-pill.working{background:#e8efff;color:#284ea2}.quarterly-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:16px 18px;border:1px solid #e3e9f2;border-radius:18px;background:#fff}.quarterly-toolbar label{display:grid;gap:6px;min-width:150px;font-size:10px;font-weight:900;color:#66768a;text-transform:uppercase;letter-spacing:.05em}.quarterly-toolbar select{border:1px solid #d7e0ec;border-radius:11px;padding:10px 12px;background:#fff;font:inherit;color:#25364a}.quarter-methodology{padding:12px 15px;border-radius:14px;background:#f7f9fc;border:1px solid #e6ebf3;color:#66768a;font-size:11px;line-height:1.55}.quarter-loading{padding:30px;text-align:center;color:#738195}.quarter-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quarter-kpi{background:#fff;border:1px solid #e4eaf2;border-radius:18px;padding:17px 18px;min-height:120px}.quarter-kpi small{font-size:9px;font-weight:900;color:#77869a;text-transform:uppercase;letter-spacing:.07em}.quarter-kpi strong{display:block;margin-top:8px;font-size:28px;letter-spacing:-.6px;color:#17304f}.quarter-kpi span{display:block;margin-top:5px;font-size:10px;color:#8190a2;line-height:1.4}.quarter-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.quarter-panel{background:#fff;border:1px solid #e4eaf2;border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.quarter-panel.full{grid-column:1/-1}.quarter-panel-head{padding:16px 18px;border-bottom:1px solid #edf1f6}.quarter-panel-head small{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#19854b}.quarter-panel-head h3{margin:5px 0 0;font-size:17px;color:#20334a}.quarter-panel-body{padding:17px 18px}
.quarter-panel-body.center-stage{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px}
.quarter-panel-body.center-stage > *{width:100%}
.quarter-panel-body.center-stage .quarter-trend-wrap,.quarter-panel-body.center-stage .quarter-contact-grid,.quarter-panel-body.center-stage .quarter-reputation-feature,.quarter-panel-body.center-stage .quarter-negative-meter,.quarter-panel-body.center-stage .rep-neutral-explainer{margin:auto 0}.quarter-table{width:100%;border-collapse:collapse;font-size:11px}.quarter-table th{padding:9px 8px;text-align:right;color:#77869a;font-size:9px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e7edf4}.quarter-table th:first-child,.quarter-table td:first-child{text-align:left}.quarter-table td{padding:10px 8px;text-align:right;border-bottom:1px solid #eef2f6}.quarter-table tr:last-child td{border-bottom:0}.quarter-table .total td{font-weight:900;color:#17304f;background:#f8fafc}.quarter-platform{display:flex;align-items:center;gap:8px;font-weight:800}.quarter-platform img{width:19px;height:19px;object-fit:contain}.quarter-comparison{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quarter-compare-card{padding:13px;border:1px solid #e7edf4;border-radius:14px;background:#fbfcfe}.quarter-compare-card small{font-size:9px;color:#7b8999;text-transform:uppercase;font-weight:900}.quarter-compare-card strong{display:block;margin:6px 0 4px;font-size:20px}.qdelta{font-size:10px;font-weight:800}.qdelta.up{color:#12813e}.qdelta.down{color:#c0362c}.qdelta.neutral{color:#77869a}.quarter-trend-wrap{overflow:visible}.quarter-trend-svg{width:100%;max-width:100%;min-width:0;height:auto;display:block}.quarter-trend-svg .grid{stroke:#e8edf4;stroke-width:1}.quarter-trend-svg .line{fill:none;stroke:#1f6fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.quarter-trend-svg .dot{fill:#fff;stroke:#1f6fff;stroke-width:2}.quarter-trend-svg .draft-dot{fill:#fff4d8;stroke:#d99b23}.quarter-trend-svg text{fill:#748499;font-size:9px}.quarter-bars{display:grid;gap:10px}.quarter-bar-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(130px,2fr) 50px;gap:10px;align-items:center;font-size:10px}.quarter-bar-row strong{font-size:10px;color:#43546b}.quarter-bar-track{height:9px;border-radius:999px;background:#edf1f6;overflow:hidden}.quarter-bar-fill{height:100%;background:linear-gradient(90deg,#0f766e,#16a34a);border-radius:inherit}.quarter-bar-row b{text-align:right;color:#30435a}.quarter-contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quarter-contact-box{padding:14px;border-radius:14px;background:#f7f9fc;border:1px solid #e6ebf3}.quarter-contact-box small{font-size:9px;color:#7b8999;text-transform:uppercase;font-weight:900}.quarter-contact-box strong{display:block;margin-top:5px;font-size:21px}.quarter-sentiment{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quarter-sentiment div{padding:13px;border-radius:14px;background:#f7f9fc;border:1px solid #e6ebf3}.quarter-sentiment small{font-size:9px;color:#77869a;text-transform:uppercase;font-weight:900}.quarter-sentiment strong{display:block;margin-top:4px;font-size:21px}.quarter-rep-status{display:flex!important;align-items:center;gap:10px}.quarter-rep-status svg{width:34px;height:34px;flex:0 0 34px}.quarter-rep-status.positive{background:#edf8f1;border-color:#cfe8d8}.quarter-rep-status.neutral{background:#eef6ff;border-color:#cfe0f5}.quarter-rep-status.stable{background:#edf9f7;border-color:#cde9e4}.quarter-rep-status.watch{background:#fff7e5;border-color:#eed9a1}.quarter-rep-status.elevated{background:#fff0ef;border-color:#edcbc8}.quarter-rep-status.no-signal,.quarter-rep-status.under-review{background:#f3f6fa;border-color:#dbe3ed}.quarter-insights{margin:0;padding-left:19px;display:grid;gap:9px;color:#4f6076;font-size:12px;line-height:1.55}.coverage-alert{margin-bottom:14px;padding:13px 15px;border-radius:14px;background:#fff8e8;border:1px solid #f0ddb2;color:#75520b;font-size:11px;line-height:1.5}.coverage-alert.complete{background:#f0faf4;border-color:#d7ecdf;color:#21673d}.invite-delivery-actions{display:flex;gap:8px;flex-wrap:wrap}.smtp-note{padding:11px 12px;border-radius:12px;background:#fff8e8;border:1px solid #f0ddb2;color:#725313;font-size:10px;line-height:1.5}.secure-link-box{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;padding:12px;border-radius:13px;background:#f3f7fd;border:1px solid #dce6f4}.secure-link-box label{display:grid;gap:6px;font-size:10px;font-weight:900;color:#607188}.secure-link-box input{width:100%;border:1px solid #d2ddea;border-radius:10px;padding:10px;font-size:11px}.secure-link-box small{grid-column:1/-1;color:#718198;font-size:9px;line-height:1.45}@media(max-width:900px){.quarter-kpis{grid-template-columns:repeat(2,1fr)}.quarter-grid{grid-template-columns:1fr}.quarter-panel.full{grid-column:auto}.quarter-comparison,.quarter-contact-grid,.quarter-sentiment{grid-template-columns:repeat(2,1fr)}.quarterly-hero{align-items:flex-start;flex-direction:column}.quarter-status-stack{justify-items:start;text-align:left}}@media(max-width:560px){.quarter-kpis,.quarter-comparison,.quarter-contact-grid,.quarter-sentiment{grid-template-columns:1fr 1fr}.quarter-bar-row{grid-template-columns:1fr}.quarter-bar-row b{text-align:left}}


/* v101 — reliable navigation + modern quarterly reporting + unified weekly summary */
body.nav-open{overscroll-behavior:none}
.nav-drawer.open .nav-drawer-panel{animation:v101DrawerIn .18s ease-out both}
.nav-drawer.open .nav-drawer-backdrop{animation:v101FadeIn .16s ease-out both}
@keyframes v101DrawerIn{from{transform:translateX(-18px);opacity:.7}to{transform:none;opacity:1}}
@keyframes v101FadeIn{from{opacity:0}to{opacity:1}}
.drawer-nav .tab-btn:focus-visible,.menu-toggle:focus-visible,.drawer-close:focus-visible{outline:3px solid rgba(31,111,255,.22);outline-offset:2px}

.quarterly-workspace{gap:18px}
.quarterly-hero{position:relative;overflow:hidden;min-height:250px;padding:30px 32px;background:linear-gradient(135deg,#082d6f 0%,#0d4b99 58%,#08764e 125%)}
.quarterly-hero:before{content:"";position:absolute;right:-110px;top:-130px;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.08)}
.quarterly-hero:after{content:"";position:absolute;right:100px;bottom:-170px;width:310px;height:310px;border-radius:50%;background:rgba(0,166,81,.18)}
.quarter-hero-copy,.quarter-status-stack{position:relative;z-index:1}
.quarter-hero-copy{max-width:820px}.quarter-hero-period{margin-top:14px;font-size:54px;line-height:.95;font-weight:950;letter-spacing:-2.2px;color:#fff}.quarterly-hero h1{font-size:34px;margin-top:10px}.quarterly-hero p{font-size:13px;max-width:760px}
.quarter-status-stack{min-width:230px;padding:17px;border:1px solid rgba(255,255,255,.17);border-radius:18px;background:rgba(255,255,255,.09);backdrop-filter:blur(8px)}
.quarter-hero-progress{width:210px;max-width:100%;height:7px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.18)}.quarter-hero-progress span{display:block;height:100%;width:0;border-radius:inherit;background:#8de8b5;transition:width .35s ease}
.quarterly-toolbar{box-shadow:0 10px 26px rgba(16,43,80,.05)}
.coverage-alert{display:flex;align-items:center;justify-content:space-between;gap:14px}.coverage-alert span{color:inherit;opacity:.85}
.quarter-kpis.modern{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.quarter-kpi{position:relative;overflow:hidden;min-height:150px;border-radius:20px;padding:18px;box-shadow:0 10px 26px rgba(21,48,83,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.quarter-kpi:hover,.quarter-panel:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(21,48,83,.10);border-color:#d8e2ef}.quarter-kpi:after{content:"";position:absolute;right:-28px;bottom:-42px;width:105px;height:105px;border-radius:50%;background:#f4f8fd}.quarter-kpi>*{position:relative;z-index:1}.quarter-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.quarter-kpi-top>span{margin:0;font-size:9px;font-weight:950;color:#718198;text-transform:uppercase;letter-spacing:.07em}.quarter-kpi-top i{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eef4ff;color:#1557a8;border:1px solid #dce8f8}.quarter-kpi-top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.quarter-kpi strong{font-size:31px;color:#0d315f}.quarter-kpi-delta{display:inline-flex!important;width:max-content;margin-top:11px!important;padding:5px 8px;border-radius:999px;font-size:9px!important;font-weight:900}.quarter-kpi-delta.up{background:#eaf8ef;color:#13743d}.quarter-kpi-delta.down{background:#fff0ef;color:#b53730}.quarter-kpi-delta.neutral{background:#f1f4f8;color:#6d7e92}
.quarter-grid.modern{gap:16px}.quarter-panel{border-radius:22px;box-shadow:0 10px 26px rgba(21,48,83,.04);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.quarter-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.quarter-panel-head.shena-green{padding:17px 18px 15px;background:linear-gradient(135deg,#008f49,#00a651);border-bottom-color:#008447;color:#fff}.quarter-panel-head.shena-green small{color:rgba(255,255,255,.78);letter-spacing:.13em}.quarter-panel-head.shena-green h3{margin-top:5px;color:#fff;text-transform:uppercase;letter-spacing:.035em;font-size:16px;font-weight:950}.quarter-head-badge{padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);font-size:9px;font-weight:900;color:#fff;white-space:nowrap}
.quarter-comparison{grid-template-columns:repeat(4,1fr);gap:12px}.quarter-compare-card{border-radius:16px;padding:15px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:inset 0 0 0 1px #e7edf4}.quarter-compare-card strong{font-size:22px;color:#123c75}
.quarter-platform-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quarter-platform-card{padding:15px;border:1px solid #e2e9f2;border-radius:17px;background:linear-gradient(180deg,#fff,#fbfdff)}.quarter-platform-card.leader{border-color:#bfe6cf;background:linear-gradient(180deg,#f9fffb,#f2fbf6)}.quarter-platform-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.quarter-platform-card-head>b{padding:4px 7px;border-radius:999px;background:#e4f7eb;color:#117641;font-size:8px;text-transform:uppercase;letter-spacing:.05em}.quarter-platform-card-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.quarter-platform-card-metrics small{display:block;font-size:8px;color:#7d8b9c;text-transform:uppercase;font-weight:900}.quarter-platform-card-metrics strong{display:block;margin-top:3px;font-size:15px;color:#213b59}.quarter-platform-track{height:6px;margin-top:13px;background:#edf2f7;border-radius:999px;overflow:hidden}.quarter-platform-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1f6fff,#00a651)}
.quarter-contact-box{position:relative;overflow:hidden}.quarter-contact-box span{display:block;margin-top:4px;font-size:9px;color:#8190a2}.quarter-contact-box.website{background:#f2f7ff}.quarter-contact-box.email{background:#f3fbf6}.quarter-contact-track{display:flex;height:9px;border-radius:999px;overflow:hidden;background:#edf1f6;margin-top:14px}.quarter-contact-track span{background:#1f6fff}.quarter-contact-track i{background:#00a651}
.quarter-reputation-feature{display:grid;grid-template-columns:70px 1fr;gap:14px;align-items:center;border:1px solid #e3e9f1;border-radius:17px;padding:15px}.quarter-reputation-feature svg{width:62px;height:62px}.quarter-reputation-feature small{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#76879a}.quarter-reputation-feature strong{display:block;margin-top:3px;font-size:23px;color:#243a55}.quarter-reputation-feature span{display:block;margin-top:5px;font-size:10px;color:#63758b}.quarter-reputation-feature.positive{background:#edf8f1;border-color:#cfe8d8}.quarter-reputation-feature.neutral{background:#eef6ff;border-color:#cfe0f5}.quarter-reputation-feature.stable{background:#edf9f7;border-color:#cde9e4}.quarter-reputation-feature.watch{background:#fff7e5;border-color:#eed9a1}.quarter-reputation-feature.elevated{background:#fff0ef;border-color:#edcbc8}.quarter-reputation-feature.no-signal,.quarter-reputation-feature.under-review{background:#f3f6fa;border-color:#dbe3ed}.quarter-negative-meter{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:13px;align-items:center;font-size:9px;color:#718198;font-weight:850}.quarter-negative-meter>div{grid-column:1/-1;height:6px;border-radius:999px;overflow:hidden;background:#edf1f6}.quarter-negative-meter i{display:block;height:100%;background:#df4a43;border-radius:inherit}.quarter-insight-panel .quarter-panel-body{background:linear-gradient(180deg,#fff,#fbfefc)}.quarter-insights{grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;gap:10px}.quarter-insights li{position:relative;padding:13px 14px 13px 38px;border:1px solid #e5ece8;border-radius:14px;background:#fff}.quarter-insights li:before{content:"✓";position:absolute;left:13px;top:12px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#e5f7ec;color:#08763d;font-weight:950;font-size:10px}
@media(max-width:1100px){.quarter-kpis.modern{grid-template-columns:repeat(2,1fr)}.quarter-platform-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.quarter-hero-period{font-size:44px}.quarter-platform-cards{grid-template-columns:1fr}.quarter-insights{grid-template-columns:1fr}.coverage-alert{align-items:flex-start;flex-direction:column}.quarter-reputation-feature{grid-template-columns:56px 1fr}.quarter-reputation-feature svg{width:50px;height:50px}}
@media(max-width:560px){.quarter-kpis.modern{grid-template-columns:1fr}.quarter-platform-card-metrics{grid-template-columns:repeat(2,1fr)}}


/* v103 — Smart Bulletin + Brunei Time restored prominently */
.smart-dashboard-strip{margin:16px 0 18px;padding:16px 18px;border:1px solid #d9e6f2;border-radius:18px;background:linear-gradient(135deg,#f7fbff 0%,#f1fbf5 100%);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr) auto;gap:16px;align-items:center;box-shadow:0 8px 22px rgba(25,61,105,.045)}
.smart-dashboard-main{display:flex;gap:12px;align-items:center}.smart-dashboard-icon{width:46px;height:46px;border-radius:14px;background:#e8f5ed;color:#087844;border:1px solid #cfe8d8;display:grid;place-items:center;flex:0 0 46px}.smart-dashboard-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.smart-dashboard-main small,.smart-dashboard-meta small{display:block;font-size:9px;font-weight:950;letter-spacing:.09em;text-transform:uppercase;color:#728299}.smart-dashboard-main strong{display:block;margin-top:3px;font-size:15px;color:#103663}.smart-dashboard-main span,.smart-dashboard-meta span{display:block;margin-top:4px;font-size:11px;color:#687a91;line-height:1.45}.smart-dashboard-meta{padding-left:16px;border-left:1px solid #dce6ef}.smart-dashboard-meta strong{display:block;margin-top:3px;font-size:13px;color:#153d70}.smart-dashboard-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}.smart-dashboard-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#e5f7ec;color:#0a7540;border:1px solid #cce8d6;font-size:9px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.smart-dashboard-pill.warn{background:#fff5df;color:#8a5d05;border-color:#eed8a8}.smart-dashboard-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(10,117,64,.10)}
@media(max-width:900px){.smart-dashboard-strip{grid-template-columns:1fr}.smart-dashboard-meta{padding-left:0;padding-top:12px;border-left:0;border-top:1px solid #dce6ef}.smart-dashboard-actions{justify-content:flex-start}}


.role-pill.role-super-admin{background:#e9f7ef!important;color:#087844!important;border:1px solid #c7e7d4!important}.super-admin-protected{background:#e9f7ef!important;color:#087844!important;border:1px solid #c7e7d4!important}.admin-managed-badge{display:inline-flex;padding:7px 9px;border-radius:999px;background:#f3f5f8;color:#68788e;font-size:9px;font-weight:900;border:1px solid #e0e6ed;white-space:nowrap}


/* v159 — Monthly Dashboard. Reuses the proven Quarterly visual system; Weekly/Quarterly logic unchanged. */
#monthlyTab .quarter-kpi,#monthlyTab .quarter-panel{border-color:#dde6f1;background:linear-gradient(180deg,#fff,#fdfefe)}
#monthlyTab .quarter-kpi{background:linear-gradient(145deg,#fff 0%,#fbfdff 74%,#f6faff 100%)}
#monthlyTab .quarter-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#1269cf,#00a651)}
#monthlyTab .quarter-kpi-top i{box-shadow:0 7px 16px rgba(18,75,145,.09)}
@media(prefers-reduced-motion:reduce){#monthlyTab .quarter-kpi,#monthlyTab .quarter-panel{transition:none!important}}

/* v120 — Quarterly Executive Visual Refresh ONLY. Weekly dashboard and data logic untouched. */
#quarterlyTab .quarterly-workspace{gap:20px}
#quarterlyTab .quarter-kpi,#quarterlyTab .quarter-panel{will-change:auto}
#quarterlyTab .quarter-kpi{border-color:#dde6f1;background:linear-gradient(145deg,#fff 0%,#fbfdff 74%,#f6faff 100%)}
#quarterlyTab .quarter-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#1269cf,#00a651)}
#quarterlyTab .quarter-kpi-top i{box-shadow:0 7px 16px rgba(18,75,145,.09)}
#quarterlyTab .quarter-panel{border-color:#dde6f1;background:linear-gradient(180deg,#fff,#fdfefe)}
.quarter-head-title{display:flex;align-items:center;gap:11px;min-width:0}
.quarter-head-title>div{min-width:0}
.quarter-head-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:12px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);color:#fff}
.quarter-head-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.quarter-chart-shell{position:relative;width:100%;min-width:0}
.quarter-chart-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin:0 2px 4px}
.quarter-chart-summary span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#f4f8fd;border:1px solid #e1eaf5;color:#6a7b90;font-size:8px;font-weight:850}
.quarter-chart-summary b{color:#123c75;font-size:9px}
.quarter-trend-wrap{position:relative;overflow:visible;padding:2px 0 0;width:100%;min-width:0;max-width:100%}
.quarter-trend-svg{width:100%;max-width:100%;min-width:0;height:auto;display:block;overflow:visible}
.quarter-trend-svg .area{opacity:.24}
.quarter-trend-svg .line{stroke-width:3.5;filter:drop-shadow(0 4px 5px rgba(31,111,255,.12))}
.quarter-trend-svg .dot{transition:r .14s ease,stroke-width .14s ease;filter:drop-shadow(0 2px 3px rgba(17,66,128,.15))}
.quarter-trend-svg .qpoint{outline:none}
.quarter-trend-svg .qpoint:focus .dot,.quarter-trend-svg .qpoint:hover .dot{r:6;stroke-width:3}
.quarter-trend-svg .qpoint-hit{fill:transparent;cursor:help}
.quarter-trend-svg .value-label{fill:#173b69;font-size:9px;font-weight:950;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.quarter-trend-svg .axis-label{fill:#75859a;font-size:8px;font-weight:800}
.quarter-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}
.quarter-hover-tooltip.visible{opacity:1;visibility:visible}
.quarter-donut-layout{display:grid;grid-template-columns:minmax(190px,235px) 1fr;gap:24px;align-items:center;min-height:250px;width:100%}
.quarter-donut-box{position:relative;display:grid;place-items:center;min-width:0}
.quarter-donut{width:min(230px,100%);height:auto;overflow:visible}
.quarter-donut .donut-base{fill:none;stroke:#edf2f7;stroke-width:14}
.quarter-donut .donut-segment{fill:none;stroke-width:14;stroke-linecap:butt;cursor:help;transition:stroke-width .14s ease,filter .14s ease}
.quarter-donut .donut-segment:hover,.quarter-donut .donut-segment:focus{stroke-width:17;filter:drop-shadow(0 4px 6px rgba(19,51,91,.16));outline:none}
.quarter-donut .donut-enquiries{stroke:#0067FF}.quarter-donut .donut-concerns{stroke:#009802}
.quarter-donut .donut-total{font-size:18px;font-weight:950;fill:#123c75;text-anchor:middle}.quarter-donut .donut-caption{font-size:7px;font-weight:900;fill:#7a899c;text-transform:uppercase;text-anchor:middle;letter-spacing:.08em}
.quarter-donut-layout .pie-legend{gap:9px}.quarter-donut-layout .pie-legend-row{cursor:help;transition:transform .14s ease,border-color .14s ease,background .14s ease}.quarter-donut-layout .pie-legend-row:hover{transform:translateX(3px);border-color:#cfdeef;background:#fbfdff}
.quarter-bars{gap:12px}.quarter-bar-row{grid-template-columns:minmax(180px,1fr) minmax(150px,2fr) 58px;cursor:help}.quarter-bar-track{position:relative;height:13px;background:#eaf0f6;box-shadow:inset 0 0 0 1px #e3eaf2}.quarter-bar-fill{background:linear-gradient(90deg,#1269cf,#00a651);box-shadow:0 3px 8px rgba(18,105,207,.14)}.quarter-bar-row>b{justify-self:end;min-width:43px;padding:5px 7px;border-radius:9px;background:#f2f7fc;border:1px solid #dfe8f2;color:#173b69;text-align:center;font-size:10px}.quarter-bar-row:hover .quarter-bar-fill{filter:brightness(1.05)}
.quarter-platform-card{position:relative;cursor:help;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.quarter-platform-card:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(21,48,83,.08);border-color:#cedbea}.quarter-platform-track{height:8px}.quarter-platform-track span{position:relative}.quarter-platform-track span:after{content:"";position:absolute;right:0;top:50%;width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid #00a651;transform:translate(50%,-50%)}
.quarter-compare-card{position:relative;overflow:hidden}.quarter-compare-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,#1269cf,#00a651);opacity:.65}
.quarter-insight-panel .quarter-insights li{transition:transform .15s ease,border-color .15s ease}.quarter-insight-panel .quarter-insights li:hover{transform:translateY(-2px);border-color:#cee1d6}
@media(max-width:700px){.quarter-head-icon{width:34px;height:34px;flex-basis:34px}.quarter-donut-layout{grid-template-columns:1fr}.quarter-chart-summary{justify-content:flex-start}.quarter-trend-svg{width:100%;min-width:0;height:auto}.quarter-bar-row{grid-template-columns:1fr}.quarter-bar-row>b{justify-self:start}}
@media(prefers-reduced-motion:reduce){#quarterlyTab .quarter-kpi,#quarterlyTab .quarter-panel,.quarter-platform-card,.quarter-donut .donut-segment,.quarter-trend-svg .dot,.quarter-insight-panel .quarter-insights li{transition:none!important}}



/* v121 — Weekly Visual Refresh ONLY. Data, auth, save, archive and refresh logic unchanged. */
#dashboardTab .panel{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
#dashboardTab .panel:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(21,48,83,.09);border-color:#d6e1ee}
.weekly-head-title{display:flex;align-items:center;gap:11px;min-width:0}.weekly-head-title>div{min-width:0}.weekly-head-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:12px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);color:#fff}.weekly-head-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.weekly-chart-shell{position:relative;width:100%;min-width:0;max-width:100%}.weekly-chart-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin:0 2px 5px}.weekly-chart-summary span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#f4f8fd;border:1px solid #e1eaf5;color:#6a7b90;font-size:8px;font-weight:850}.weekly-chart-summary b{color:#123c75;font-size:9px}.weekly-trend-wrap{position:relative;overflow:visible;padding-top:2px;width:100%;min-width:0;max-width:100%}#dashboardTab #lineChart{height:auto!important;display:block}.weekly-trend-svg{width:100%;max-width:100%;min-width:0;height:auto;display:block;overflow:visible}.weekly-trend-svg .weekly-grid{stroke:#e8edf4;stroke-width:1}.weekly-trend-svg .weekly-area{opacity:.24}.weekly-trend-svg .weekly-line{fill:none;stroke:#1f6fff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 5px rgba(31,111,255,.12))}.weekly-trend-svg .weekly-point{outline:none}.weekly-trend-svg .weekly-hit{fill:transparent;cursor:help}.weekly-trend-svg .weekly-dot{fill:#fff;stroke:#1f6fff;stroke-width:2;transition:r .14s ease,stroke-width .14s ease;filter:drop-shadow(0 2px 3px rgba(17,66,128,.15))}.weekly-trend-svg .weekly-dot.current{fill:#14a44d;stroke:#1f6fff;stroke-width:3}.weekly-trend-svg .weekly-point:hover .weekly-dot,.weekly-trend-svg .weekly-point:focus .weekly-dot{r:6.5;stroke-width:3}.weekly-trend-svg .weekly-value{fill:#173b69;font-size:10px;font-weight:950;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.weekly-trend-svg .weekly-axis{fill:#75859a;font-size:8px;font-weight:800}.weekly-trend-svg .weekly-axis.current{fill:#0a2f78;font-weight:950}
.weekly-hover-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-hover-tooltip.visible{opacity:1;visibility:visible}
.weekly-donut-layout{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:32px;align-items:center;align-content:center;min-height:100%;width:100%}.weekly-donut-box{display:grid;place-items:center}.weekly-donut{width:min(310px,100%);height:auto;overflow:visible}.weekly-donut .donut-base{fill:none;stroke:#edf2f7;stroke-width:14}.weekly-donut .donut-segment{fill:none;stroke-width:14;cursor:help;transition:stroke-width .14s ease,filter .14s ease}.weekly-donut .donut-segment:hover,.weekly-donut .donut-segment:focus{stroke-width:17;filter:drop-shadow(0 4px 6px rgba(19,51,91,.16));outline:none}.weekly-donut .donut-enquiries{stroke:#0067FF}.weekly-donut .donut-concerns{stroke:#009802}.weekly-donut .donut-total{font-size:18px;font-weight:950;fill:#123c75;text-anchor:middle}.weekly-donut .donut-caption{font-size:7px;font-weight:900;fill:#7a899c;text-anchor:middle;letter-spacing:.08em}.weekly-donut-layout .pie-legend{gap:18px;align-content:center}.weekly-donut-layout .pie-legend-row{padding:17px 18px;border-radius:16px;cursor:help;transition:transform .14s ease,border-color .14s ease,background .14s ease}.weekly-donut-layout .pie-total{padding:16px 18px;border-radius:16px}.weekly-donut-layout .pie-legend-row:hover{transform:translateX(3px);border-color:#cfdeef;background:#fbfdff}.weekly-contact-panel{align-self:stretch}.weekly-contact-panel .panel-body{flex:1;display:flex;align-items:center;padding-top:22px;padding-bottom:22px}.weekly-contact-panel #ceComparison{min-height:0!important;width:100%;height:100%;display:flex;align-items:center}
#dashboardTab #hbarChart{height:auto!important;display:block}.weekly-category-shell{width:100%}.weekly-category-bars{display:grid;gap:10px;margin-top:8px}.weekly-category-row{display:grid;grid-template-columns:minmax(185px,1fr) minmax(150px,2fr) 58px;gap:10px;align-items:center;cursor:help;font-size:10px;outline:none}.weekly-category-row strong{font-size:10px;color:#43546b}.weekly-category-track{height:13px;border-radius:999px;background:#eaf0f6;box-shadow:inset 0 0 0 1px #e3eaf2;overflow:hidden}.weekly-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-category-row:hover .weekly-category-fill,.weekly-category-row:focus .weekly-category-fill{filter:brightness(1.06);transform:scaleY(1.12)}.weekly-category-row b{justify-self:end;min-width:44px;padding:5px 7px;border-radius:9px;background:#f2f7fc;border:1px solid #dfe8f2;color:#173b69;text-align:center;font-size:10px}.weekly-platform-row{cursor:help;outline:none;transition:background .13s ease}.weekly-platform-row:hover,.weekly-platform-row:focus{background:#f7fbff}.weekly-platform-row .mini-fill{transition:filter .13s ease}.weekly-platform-row:hover .mini-fill,.weekly-platform-row:focus .mini-fill{filter:brightness(1.08)}
@media(max-width:700px){.weekly-head-icon{width:34px;height:34px;flex-basis:34px}.weekly-chart-summary{justify-content:flex-start}.weekly-donut-layout{grid-template-columns:1fr;gap:18px;min-height:0}.weekly-donut{width:min(250px,82vw)}.weekly-contact-panel .panel-body{padding-top:18px;padding-bottom:18px}.weekly-category-row{grid-template-columns:1fr}.weekly-category-row b{justify-self:start}.weekly-trend-svg{width:100%;min-width:0;height:auto}}
@media(prefers-reduced-motion:reduce){#dashboardTab .panel,.weekly-trend-svg .weekly-dot,.weekly-donut .donut-segment,.weekly-category-fill{transition:none!important}}

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


/* v127 — Graph typography readability. Presentation only; data/API logic unchanged. */
/* Weekly admin trend */
.weekly-chart-summary span{font-size:10px!important;padding:6px 10px!important}
.weekly-chart-summary b{font-size:11px!important}
.weekly-trend-svg .weekly-value{font-size:12px!important}
.weekly-trend-svg .weekly-axis{font-size:10px!important;font-weight:850!important}
#dashboardTab .chart-legend{font-size:13px!important;gap:16px}
#dashboardTab .legend-dot{width:10px;height:10px}
.weekly-hover-tooltip{font-size:11px!important}
/* Weekly admin contact/category charts */
.weekly-category-row,.weekly-category-row strong{font-size:12px!important}
.weekly-category-row b{font-size:11px!important}
.weekly-donut .donut-caption{font-size:9px!important;font-weight:950!important}
.weekly-donut .donut-total{font-size:20px!important}
.weekly-donut-layout .pie-legend-copy strong{font-size:13px!important}
.weekly-donut-layout .pie-legend-copy span{font-size:11px!important}
.weekly-donut-layout .pie-legend-value{font-size:19px!important}

/* Quarterly admin trends + chart labels */
.quarter-chart-summary span{font-size:10px!important;padding:6px 10px!important}
.quarter-chart-summary b{font-size:11px!important}
.quarter-trend-svg .value-label{font-size:12px!important}
.quarter-trend-svg .axis-label{font-size:10px!important;font-weight:850!important}
.quarter-hover-tooltip{font-size:11px!important}
.quarter-bar-row,.quarter-bar-row strong{font-size:12px!important}
.quarter-bar-row>b{font-size:11px!important}
.quarter-donut .donut-caption{font-size:9px!important;font-weight:950!important}
.quarter-donut .donut-total{font-size:20px!important}
.quarter-donut-layout .pie-legend-copy strong{font-size:13px!important}
.quarter-donut-layout .pie-legend-copy span{font-size:11px!important}
.quarter-donut-layout .pie-legend-value{font-size:19px!important}
.quarter-platform{font-size:12px!important}
.quarter-platform-card-head>b{font-size:9px!important}
.quarter-platform-card-metrics small{font-size:10px!important}
.quarter-platform-card-metrics strong{font-size:16px!important}

/* Keep larger graph labels comfortable on compact screens without overflow. */
@media(max-width:700px){
  .weekly-chart-summary span,.quarter-chart-summary span{font-size:9px!important;padding:5px 8px!important}
  .weekly-chart-summary b,.quarter-chart-summary b{font-size:10px!important}
  .weekly-trend-svg .weekly-value,.quarter-trend-svg .value-label{font-size:11px!important}
  .weekly-trend-svg .weekly-axis,.quarter-trend-svg .axis-label{font-size:9px!important}
  .weekly-category-row,.weekly-category-row strong,.quarter-bar-row,.quarter-bar-row strong{font-size:11px!important}
}



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

/* Quarterly admin */
.quarter-chart-summary span{font-size:12px!important;padding:7px 11px!important}
.quarter-chart-summary b{font-size:13px!important}
.quarter-trend-svg .value-label{font-size:15px!important;font-weight:950!important}
.quarter-trend-svg .axis-label{font-size:12px!important;font-weight:900!important}
.quarter-hover-tooltip{font-size:12px!important}
.quarter-bar-row,.quarter-bar-row strong{font-size:14px!important}
.quarter-bar-row>b{font-size:13px!important}
.quarter-donut .donut-caption{font-size:10px!important}
.quarter-donut .donut-total{font-size:23px!important}
.quarter-donut-layout .pie-legend-copy strong{font-size:15px!important}
.quarter-donut-layout .pie-legend-copy span{font-size:13px!important}
.quarter-donut-layout .pie-legend-value{font-size:22px!important}
.quarter-platform{font-size:14px!important}
.quarter-platform-card-head>b{font-size:10px!important}
.quarter-platform-card-metrics small{font-size:11px!important}
.quarter-platform-card-metrics strong{font-size:18px!important}

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


/* v145 — contact-tracker seed rows remain safe historical preview until first full save */
/* v147 — incomplete historical Drafts auto-detect as backfill previews */
/* v150 — EVERY past reporting week is a Historical Data Preview. Draft previews save only on explicit Save Data; Final previews never overwrite the locked bulletin. */
.yearly-week-copy span.missing{background:#eef3f8;color:#5e6f84}
.yearly-week-copy span.backfill{background:#fff2d1;color:#8a5b00}
.yearly-week-copy span.current{background:#e7f3ff;color:#145ca8}
.yearly-week-copy span.upcoming{background:#f4f5f7;color:#8a96a5}
.yearly-view-week[disabled]{opacity:.48;cursor:not-allowed;background:#f5f7fa;color:#8996a6}
.yearly-month-count b{font-variant-numeric:tabular-nums}


/* v197 — adaptive Actions menu height; navigation-only regression-safe patch */
@media (min-width:761px){
  .action-menu{
    max-height:calc(100dvh - 104px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
  }
  .action-menu-head{
    position:sticky;
    top:0;
    z-index:2;
    background:#fff;
  }
}
@supports not (height:100dvh){
  @media (min-width:761px){.action-menu{max-height:calc(100vh - 104px)}}
}

/* v237 — User Management responsive layout only. No data/API/auth logic changes. */
#usersTab .workspace,
#usersTab .users-layout,
#usersTab .user-form-card,
#usersTab .user-list-card,
#usersTab .user-table-wrap{min-width:0;max-width:100%}
#usersTab .user-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
#usersTab .user-form input,
#usersTab .user-form select,
#usersTab .secure-link-box input{box-sizing:border-box;min-width:0}
#usersTab .user-actions{min-width:0;flex-wrap:wrap}
#usersTab .user-table td:first-child{overflow-wrap:anywhere;word-break:break-word}

@media(max-width:760px){
  #usersTab .workspace{padding:16px;border-radius:18px}
  #usersTab .workspace h2{font-size:24px;line-height:1.12}
  #usersTab .user-form-card,
  #usersTab .user-list-card{padding:15px;border-radius:15px}
  #usersTab .invite-delivery-actions{display:grid;grid-template-columns:1fr}
  #usersTab .invite-delivery-actions .btn{width:100%}
  #usersTab .secure-link-box{grid-template-columns:1fr}
  #usersTab .secure-link-box .btn{width:100%}
  #usersTab .secure-link-box small{grid-column:auto}

  #usersTab .user-table-wrap{overflow:visible}
  #usersTab .user-table{display:block;min-width:0;width:100%}
  #usersTab .user-table thead{display:none}
  #usersTab .user-table tbody{display:grid;gap:10px}
  #usersTab .user-table tr{display:grid;grid-template-columns:minmax(0,1fr);gap:0;border:1px solid #e5eaf0;border-radius:13px;background:#fff;overflow:hidden}
  #usersTab .user-table td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:start;width:auto!important;padding:10px 12px;border-bottom:1px solid #edf1f5;text-align:left!important;min-width:0}
  #usersTab .user-table td:last-child{border-bottom:0}
  #usersTab .user-table td::before{font-size:8px;font-weight:950;letter-spacing:.07em;text-transform:uppercase;color:#8795a7;line-height:1.4}
  #usersTab .user-table td:nth-child(1)::before{content:"User"}
  #usersTab .user-table td:nth-child(2)::before{content:"Role"}
  #usersTab .user-table td:nth-child(3)::before{content:"Status"}
  #usersTab .user-table td:nth-child(4)::before{content:"Last Sign In"}
  #usersTab .user-table td:nth-child(5)::before{content:"Actions"}
  #usersTab .user-actions{justify-content:flex-start}
  #usersTab .btn-danger,
  #usersTab .self-badge,
  #usersTab .admin-managed-badge{max-width:100%;white-space:normal;text-align:left}
  #usersTab .user-table td[colspan]{display:block;padding:14px}
  #usersTab .user-table td[colspan]::before{content:none}
}

@media(max-width:420px){
  #usersTab .workspace{padding:13px}
  #usersTab .user-form-card,
  #usersTab .user-list-card{padding:13px}
  #usersTab .user-table td{grid-template-columns:1fr;gap:5px}
}

/* v238 — Responsive hardening across Admin screens. Layout only; no data/API logic changes. */
html,body{max-width:100%;overflow-x:hidden}
@media(max-width:760px){
  .login-shell{padding:14px}
  .login-card,.login-visual,.login-form-wrap,.login-form-card{width:100%;max-width:100%;min-width:0}
  .login-visual{padding:28px}
  .login-form-wrap{padding:30px 22px}
  .login-form-card h2{font-size:28px;overflow-wrap:anywhere}
  .app-shell,.workspace,.hero,.panel,.panel-body,.grid-2,.stats-grid,.kpi-grid,.quarterly-workspace,.quarterly-hero,.quarterly-toolbar,.quarter-methodology{min-width:0;max-width:100%}
  .grid-2,.stats-grid{grid-template-columns:1fr}
  .hero>*{min-width:0;max-width:100%}
  .period-card{width:100%;min-width:0;max-width:100%}
  .reputation,.reputation>div{min-width:0;max-width:100%}
  .reputation-sources{min-width:0;max-width:100%;flex-wrap:wrap}
  .smart-contact-input{width:100%;min-width:0;max-width:100%}
  .contact-source-card,.contact-source-card label,.contact-source-card .mini-grid{min-width:0;max-width:100%}
  .contact-source-card .mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .quarterly-toolbar label{min-width:0;flex:1 1 150px}
  .quarterly-toolbar select{max-width:100%}
}
@media(max-width:420px){
  .login-shell{padding:10px}
  .login-visual{padding:22px}
  .login-form-wrap{padding:24px 18px}
  .app-shell{padding:8px}
  .topbar{padding:10px}
  .topbar-logo{width:116px}
  .topbar-copy strong{font-size:14px}
  .topbar-copy span{display:none}
  .hero{padding:20px 18px;border-radius:22px}
  .hero h1{font-size:30px}
  .workspace{padding:16px;border-radius:18px}
  .panel-head,.panel>.panel-head.shena-green{padding-left:14px;padding-right:14px}
  .panel-body{padding-left:14px;padding-right:14px}
  .quarterly-hero{padding:20px;border-radius:20px}
  .quarter-hero-period{font-size:38px}
  .quarterly-hero h1{font-size:28px}
  .quarterly-toolbar{padding:14px}
  .quarterly-toolbar label{flex:1 1 100%;width:100%}
  .quarterly-toolbar select{width:100%}
  .contact-source-card .mini-grid{grid-template-columns:1fr}
}

/* v238.1 — tablet refinements found during full responsive audit. */
@media(max-width:1100px){
  #usersTab .users-layout{grid-template-columns:1fr}
}
@media(max-width:760px){
  .quarterly-toolbar label{flex:1 1 100%;width:100%;max-width:100%}
  .quarterly-toolbar select{width:100%;min-width:0;max-width:100%}
}

/* v238.2 — contain generated Monthly/Quarterly data tables on phones. */
@media(max-width:600px){
  .quarter-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
