@font-face {
  font-family: Poppins;
  src: url("/assets/fonts/Poppins-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-display: swap;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--gf-digital-canvas);
  color: var(--gf-brand-charcoal);
  font:
    16px/1.55 "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif;
  font-synthesis: none;
}
h1,
h2,
h3,
h4,
.button {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 600;
}
h1 {
  font-size: 32px;
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin: 8px 0 16px;
}
h2 {
  font-size: 24px;
  line-height: 1.25;
  margin: 0 0 16px;
}
h3 {
  font-size: 18px;
  line-height: 1.4;
  margin: 8px 0;
}
h4 {
  font-size: 16px;
  margin: 16px 0 8px;
}
p {
  margin: 8px 0 16px;
}
a {
  color: var(--gf-digital-deep-teal);
  text-underline-offset: 4px;
}
button,
input,
select {
  font: inherit;
}
button,
a,
input,
select,
summary {
  touch-action: manipulation;
}
button,
summary {
  cursor: pointer;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--gf-brand-palm);
  outline-offset: 3px;
}
button {
  color: inherit;
}
.brand {
  display: block;
  line-height: 0;
}
.brand img {
  width: 154px;
  height: auto;
}
.topbar {
  height: 64px;
  border-bottom: 1px solid var(--gf-digital-border-stone);
  background: var(--gf-digital-white);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 32px;
  position: sticky;
  top: 0;
  z-index: 5;
}
.shell {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
}
.sidebar {
  background: var(--gf-digital-white);
  border-right: 1px solid var(--gf-digital-border-stone);
  padding: 24px 16px;
  position: sticky;
  top: 64px;
  height: calc(100dvh - 64px);
  display: flex;
  flex-direction: column;
}
.sidebar nav a,
.mobile-menu nav a {
  display: block;
  text-decoration: none;
  padding: 12px 16px;
  min-height: 48px;
  border-radius: 8px;
  margin: 4px 0;
  color: var(--gf-brand-charcoal);
}
.sidebar nav a[aria-current],
.mobile-menu nav a[aria-current] {
  background: var(--gf-digital-tint-teal);
  color: var(--gf-digital-deep-teal);
  font-weight: 600;
}
.sidebar nav a:hover {
  background: var(--gf-digital-stone);
}
.sidebar-bottom {
  margin-top: auto;
  padding-top: 24px;
}
.sidebar-bottom .text-button {
  margin-left: 16px;
}
main {
  width: 100%;
  max-width: 1280px;
  padding: 32px;
  margin: 0 auto;
  min-width: 0;
}
.page-heading {
  margin: 24px 0 32px;
}
.meta {
  font-size: 14px;
  color: var(--gf-brand-charcoal);
}
.scope-note {
  font-size: 14px;
  max-width: 760px;
}
.contexts {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--gf-digital-border-stone);
}
.context-form {
  display: flex;
  gap: 8px;
  align-items: end;
  flex-wrap: wrap;
}
.context-form label {
  font-size: 14px;
}
.context-form label {
  flex: 1;
  min-width: 220px;
}
.context-form select {
  max-width: 380px;
}
label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
}
input,
select,
textarea {
  width: 100%;
  min-height: 48px;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 400;
  caret-color: var(--gf-brand-palm);
  accent-color: var(--gf-brand-palm);
  border: 1px solid var(--gf-brand-palm);
  border-radius: var(--gf-radius-small);
  background: var(--gf-digital-white);
  padding: 11px 14px;
  color: var(--gf-brand-charcoal);
  max-width: 100%;
  min-width: 0;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border: 1px solid var(--gf-brand-charcoal);
  border-radius: 12px;
  background: var(--gf-digital-white);
  padding: 10px 16px;
  text-decoration: none;
  font-size: 14px;
  color: var(--gf-brand-charcoal);
}
.button:hover:not(:disabled) {
  background: var(--gf-digital-tint-teal);
  border-color: var(--gf-brand-palm);
}
.button:active:not(:disabled) {
  background: var(--gf-digital-stone);
}
.button.primary:hover:not(:disabled) {
  background: var(--gf-digital-deep-teal);
  border-color: var(--gf-digital-deep-teal);
}
.button.primary {
  background: var(--gf-digital-black);
  color: var(--gf-digital-white);
  border-color: var(--gf-digital-black);
}
.text-button {
  border: 0;
  background: none;
  min-height: 48px;
  padding: 8px 0;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.text-link {
  font-weight: 600;
}
.panel,
.empty {
  background: var(--gf-digital-white);
  border: 1px solid var(--gf-digital-border-stone);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 24px;
}
.empty {
  background: var(--gf-digital-stone);
  border-color: transparent;
}
.empty h2 {
  font-size: 18px;
}
.empty p:last-child {
  margin-bottom: 0;
}
.campaign {
  padding: 32px;
  background: var(--gf-digital-tint-teal);
  border-radius: 16px;
  margin-bottom: 24px;
  max-width: 100%;
}
.campaign h2 {
  font-size: 28px;
  max-width: 740px;
}
.campaign p {
  max-width: 780px;
}
.chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 24px;
}
.badge {
  display: inline-block;
  border-radius: 8px;
  padding: 4px 10px;
  font-size: 14px;
  background: var(--gf-digital-stone);
  color: var(--gf-brand-charcoal);
  white-space: normal;
}
.badge.positive {
  background: var(--gf-digital-tint-teal);
  color: var(--gf-digital-deep-teal);
}
.badge.attention {
  background: var(--gf-digital-tint-yellow);
  color: var(--gf-brand-charcoal);
}
.summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  gap: 24px;
}
.section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.section-heading .text-link {
  font-size: 14px;
}
.metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  margin: 16px 0 24px;
}
.summary-grid .metrics {
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
}
.metric {
  padding: 16px 0;
  border-top: 2px solid var(--gf-brand-palm);
}
.metric h3 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  min-height: 44px;
}
.metric strong {
  font-family: Poppins, sans-serif;
  font-size: 32px;
  font-weight: 600;
  color: var(--gf-brand-charcoal);
}
.metric .meta {
  margin-bottom: 0;
}
.actions {
  background: var(--gf-digital-tint-yellow);
}
.help-note {
  padding: 16px 8px;
}
.help-note h2 {
  font-size: 18px;
}
.compact-row {
  border-top: 1px solid var(--gf-digital-border-stone);
  padding: 16px 0;
}
.compact-row:last-child {
  padding-bottom: 0;
}
.compact-row p {
  font-size: 14px;
}
.filters {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 24px;
}
.filters label {
  flex: 1;
  min-width: 150px;
}
.filters .text-link {
  align-self: center;
}
.tabs {
  display: flex;
  gap: 8px;
  overflow: auto;
  border-bottom: 1px solid var(--gf-digital-border-stone);
  margin-bottom: 24px;
}
.tabs a {
  padding: 12px;
  white-space: nowrap;
  text-decoration: none;
  color: var(--gf-brand-charcoal);
  min-height: 48px;
}
.tabs a[aria-current] {
  border-bottom: 3px solid var(--gf-brand-palm);
  color: var(--gf-digital-deep-teal);
  font-weight: 600;
}
.content-item {
  padding: 24px;
  background: white;
  border: 1px solid var(--gf-digital-border-stone);
  border-radius: 16px;
  margin-bottom: 16px;
}
.panel .content-item {
  border: 0;
  border-top: 1px solid var(--gf-digital-border-stone);
  border-radius: 0;
  padding: 20px 0;
  margin: 0;
}
.item-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
}
.content-item h3 {
  max-width: 900px;
}
.content-item h3 a {
  color: var(--gf-brand-charcoal);
  text-decoration: none;
}
.content-item h3 a:hover {
  text-decoration: underline;
}
.copy {
  white-space: pre-wrap;
  max-width: 80ch;
  overflow-wrap: anywhere;
}
.post-image {
  display: block;
  width: min(100%, 480px);
  height: auto;
  border-radius: 12px;
  margin: 16px 0;
}
.action-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.action-help {
  flex: 1;
  min-width: 150px;
}
.action-help summary {
  font-size: 14px;
  color: var(--gf-digital-deep-teal);
}
.action-help p {
  font-size: 14px;
}
summary {
  min-height: 48px;
  padding: 12px 0;
  font-weight: 600;
}
details.panel summary {
  font-size: 18px;
}
details[open] > summary {
  margin-bottom: 8px;
}
.calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-top: 1px solid var(--gf-digital-border-stone);
  border-left: 1px solid var(--gf-digital-border-stone);
}
.weekday,
.calendar-day,
.calendar-pad {
  border-right: 1px solid var(--gf-digital-border-stone);
  border-bottom: 1px solid var(--gf-digital-border-stone);
  padding: 8px;
  min-width: 0;
}
.weekday {
  font-size: 14px;
  text-align: center;
}
.calendar-day {
  min-height: 120px;
}
.calendar-day time {
  font-size: 14px;
}
.calendar-day a {
  display: block;
  background: var(--gf-digital-tint-teal);
  font-size: 14px;
  padding: 8px;
  border-radius: 8px;
  margin-top: 8px;
  overflow-wrap: anywhere;
}
.calendar-day .meta {
  display: block;
  font-size: 14px;
}
.activity-row {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 24px;
  padding: 24px 0;
  border-top: 1px solid var(--gf-digital-border-stone);
}
.activity-row time {
  font-size: 14px;
}
.activity-row p {
  margin-bottom: 8px;
}
.report-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  padding: 24px 0;
  border-top: 1px solid var(--gf-digital-border-stone);
}
.report-row:first-child {
  border-top: 0;
  padding-top: 0;
}
.report-row:last-child {
  padding-bottom: 0;
}
.report-row h2 {
  font-size: 18px;
  margin-bottom: 8px;
}
.report-row p {
  margin: 0;
}
.note {
  padding: 24px 0;
  max-width: 80ch;
}
.note h2 {
  font-size: 18px;
}
.reading {
  max-width: 800px;
}
.chart {
  width: 100%;
  height: 240px;
  display: block;
}
.trend {
  border-top: 1px solid var(--gf-digital-border-stone);
  padding: 8px 0;
}
.table-scroll {
  max-height: 320px;
  overflow: auto;
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  text-align: left;
}
th,
td {
  padding: 12px;
  border-bottom: 1px solid var(--gf-digital-border-stone);
}
caption {
  text-align: left;
  font-weight: 600;
  padding: 12px;
}
.welcome-video {
  width: 100%;
  aspect-ratio: 16/9;
  border: 0;
  border-radius: 12px;
}
footer {
  font-size: 14px;
  border-top: 1px solid var(--gf-digital-border-stone);
  margin-top: 48px;
  padding: 24px 0;
}
.mobile-menu {
  display: none;
}
.skip,
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.skip:focus {
  width: auto;
  height: auto;
  clip-path: none;
  padding: 12px;
  background: var(--gf-digital-white);
  z-index: 20;
}
.login {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  max-width: 1120px;
  min-height: 100dvh;
  align-items: center;
}
.login-story {
  background: var(--gf-digital-tint-teal);
  border-radius: 24px;
  padding: 48px;
}
.login-story .brand {
  margin-bottom: 64px;
}
.login-story h1 {
  font-size: 40px;
}
.login-form {
  max-width: 380px;
  width: 100%;
}
.login-form form {
  display: grid;
  gap: 24px;
  margin: 32px 0;
}
.alert {
  background: var(--gf-digital-tint-orange);
  border-radius: 8px;
  padding: 16px;
}
@media (max-width: 1200px) {
  .summary-grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr);
  }
  .calendar-day {
    padding: 4px;
  }
  .calendar-day a {
    padding: 4px;
  }
}
@media (max-width: 1023px) {
  .topbar {
    padding: 0 16px;
  }
  .topbar > .meta {
    display: none;
  }
  .shell {
    display: block;
  }
  .sidebar {
    display: none;
  }
  .mobile-menu {
    display: block;
  }
  .mobile-menu > summary {
    padding: 12px;
  }
  .mobile-menu[open] {
    position: absolute;
    right: 16px;
    top: 8px;
    background: var(--gf-digital-white);
    border: 1px solid var(--gf-digital-border-stone);
    border-radius: 12px;
    padding: 0 16px 16px;
    max-height: 90dvh;
    overflow: auto;
    min-width: 250px;
  }
  .mobile-menu summary {
    text-align: right;
  }
  main {
    padding: 24px 16px;
  }
  .summary-grid {
    grid-template-columns: minmax(0, 1fr) minmax(250px, 1fr);
  }
  .login {
    gap: 32px;
  }
  .login-story {
    padding: 32px;
  }
  .login-story h1 {
    font-size: 32px;
  }
}
@media (max-width: 700px) {
  h1 {
    font-size: 24px;
  }
  h2 {
    font-size: 22px;
  }
  .panel,
  .empty,
  .content-item {
    padding: 16px;
  }
  .campaign {
    padding: 24px 16px;
  }
  .campaign h2 {
    font-size: 24px;
  }
  .summary-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .contexts {
    display: grid;
    gap: 16px;
  }
  .context-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }
  .context-form select {
    width: 100%;
    max-width: 100%;
  }
  .context-form .button {
    max-width: 126px;
    line-height: 1.4;
  }
  .context-form label {
    min-width: 0;
  }
  .page-heading {
    margin: 24px 0;
  }
  .metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .summary-grid .metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .metric strong {
    font-size: 28px;
  }
  .activity-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .calendar {
    display: block;
    border: 0;
  }
  .weekday,
  .calendar-pad {
    display: none;
  }
  .calendar-day {
    border: 0;
    border-bottom: 1px solid var(--gf-digital-border-stone);
    padding: 12px 0;
    min-height: 0;
  }
  .calendar-day:not(:has(a)) {
    display: none;
  }
  .calendar-day time:before {
    content: "Day ";
  }
  .calendar-day a {
    padding: 12px;
  }
  .chart {
    height: 200px;
  }
  .login {
    display: block;
    max-width: 480px;
    padding: 24px 16px;
  }
  .login-story {
    padding: 24px;
    margin-bottom: 32px;
  }
  .login-story .brand {
    margin-bottom: 32px;
  }
  .login-story h1 {
    font-size: 28px;
  }
  .login-form {
    max-width: none;
  }
  .item-top {
    flex-wrap: wrap;
  }
  .filters label {
    min-width: 130px;
  }
  .reading {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
  }
}

.panel .empty {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  margin-bottom: 0;
}
.panel .empty h2 {
  font-family: var(--gf-font-body);
  font-size: 16px;
  font-weight: 400;
}
.campaign > .meta {
  display: none;
}

/* Shared form controls keep native keyboard and mobile picker behavior. */
select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 46px;
  background-image: url('/assets/select-chevron.svg');
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 20px;
  cursor: pointer;
}
select option { color: var(--gf-brand-charcoal); background: var(--gf-digital-white); }
input::placeholder, textarea::placeholder { color: var(--gf-brand-charcoal); opacity: .8; }
input:hover:not(:disabled), select:hover:not(:disabled), textarea:hover:not(:disabled) { background-color: var(--gf-digital-canvas); }
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--gf-brand-palm);
  outline-offset: 3px;
  background-color: var(--gf-digital-white);
}
input:disabled, select:disabled, textarea:disabled, button:disabled {
  background-color: var(--gf-digital-stone);
  border-color: var(--gf-digital-border-stone);
  color: var(--gf-brand-charcoal);
  cursor: not-allowed;
}
input[readonly], textarea[readonly] { background-color: var(--gf-digital-stone); }
input[aria-invalid='true'], textarea[aria-invalid='true'], select[aria-invalid='true'], input:user-invalid {
  border-style: dashed;
  border-color: var(--gf-brand-charcoal);
  background-color: var(--gf-digital-tint-orange);
}
input:-webkit-autofill { -webkit-text-fill-color: var(--gf-brand-charcoal); caret-color: var(--gf-brand-palm); }
input[type='search']::-webkit-search-cancel-button { cursor: pointer; }
input[type='date'], input[type='month'] { font-variant-numeric: tabular-nums; }
input[type='date']::-webkit-calendar-picker-indicator, input[type='month']::-webkit-calendar-picker-indicator { cursor: pointer; padding: 4px; }
textarea { resize: vertical; min-height: 128px; font-family: var(--gf-font-body); }
::selection { background: var(--gf-digital-tint-teal); color: var(--gf-brand-charcoal); }
@media (max-width:700px) {
  .context-form label { min-width: 0; }
  .context-form { grid-template-columns: minmax(0,1fr); }
  .context-form .button { max-width: none; width: 100%; }
  .context-form select { max-width: none; }
  .filters input, .filters select { min-width: 0; }
}
@media (forced-colors:active) {
  select { appearance:auto; background-image:none; }
  input, select, textarea, .button { border-color:ButtonText; }
}

/* The approved monthly report retains its own presentation inside this frame. */
.monthly-report { display:block; width:100%; height:80vh; min-height:680px; border:0; margin-top:24px; background:#fff; }
@media(max-width:700px){ .monthly-report{min-height:560px;height:80vh;} }

.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px}.post-copy{white-space:pre-wrap;overflow-wrap:anywhere}.post-image{display:block;max-width:100%;height:auto;border-radius:12px}code,dd{overflow-wrap:anywhere}dd{margin:0 0 16px}dt{font-weight:600}
/* GF-BRAND 1.0-draft; source pending canonical promotion. Reuse Portal tokens. */
.quick-links-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-link{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--border,#dadad5);border-radius:8px;color:inherit;text-decoration:none;min-height:64px}.quick-link:hover,.quick-link:focus-visible{background:var(--surface,#fff)}.quick-link>span:first-child{font-size:22px;line-height:1}.quick-link small{display:block;margin-top:4px;font-size:14px}.quick-link strong{font-weight:600}@media(max-width:820px){.quick-links-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.quick-links-grid{grid-template-columns:1fr}}
.operator-page{max-width:880px;margin:48px auto;padding:0 20px}.operator-page label{display:block;margin:16px 0}.operator-page input,.operator-page select{display:block;width:100%;margin-top:8px}

.performance-header{display:flex;justify-content:space-between;align-items:start;gap:24px;margin-bottom:32px}.performance-header h2{margin-top:0}.performance-summary{max-width:75ch;margin-bottom:32px}.performance-section{scroll-margin-top:90px}.performance-trend{margin:24px 0}.performance-trend figcaption{font-weight:600;margin-bottom:16px}.performance-trend svg{overflow:visible}.performance-trend polyline{fill:none;stroke:var(--palm,#367175);stroke-width:3}.performance-trend circle{fill:var(--palm,#367175)}.performance-trend text{fill:var(--charcoal,#333234);font-size:14px}.performance-section td,.performance-section strong{font-variant-numeric:tabular-nums}@media(max-width:700px){.performance-header{display:block}.performance-header>a{display:inline-block;margin-top:12px}.performance-trend{margin:20px 0}}
.performance-section .metrics{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}.performance-trend .chart{height:auto;min-height:0}@media(max-width:700px){.performance-trend text{font-size:28px}}

.scheduling-panel { max-width:1100px; padding:0; min-width:0; overflow:hidden; }
.scheduling-intro { padding:24px; }
.scheduling-frame { display:block; width:100%; height:850px; border:0; }
@media(max-width:700px){.scheduling-intro{padding:16px;}.scheduling-frame{height:1100px;}}

/* Current Performance — Operate. GF-BRAND 1.0-draft, pending canonical promotion. */
.performance-experience { min-width:0; }
.performance-experience p { max-width:75ch; }
.performance-experience .performance-header { gap:24px; margin-bottom:24px; }
.performance-period { font-family:var(--gf-font-display); font-size:20px; margin-top:0; }
.performance-coverage { background:var(--gf-digital-tint-teal); padding:16px 20px; margin-bottom:24px; border-radius:8px; }
.performance-coverage p { margin:4px 0 0; }
.performance-summary { max-width:none; padding:24px 0; margin-bottom:16px; }
.performance-experience .metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:24px; }
.performance-experience .metric { border:0; border-top:1px solid var(--gf-digital-border-stone); padding:16px 0 0; background:none; border-radius:0; min-width:0; }
.performance-experience .metric strong { font-family:var(--gf-font-display); font-weight:600; font-size:32px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.performance-experience .metric h3 { font:400 16px/1.5 var(--gf-font-body); margin:0 0 12px; }
.performance-experience .metric-definition { font-size:14px; }
.performance-navigation { margin:24px 0 32px; border-block:1px solid var(--gf-digital-border-stone); }
.performance-navigation summary, .performance-details summary { padding:14px 0; min-height:48px; cursor:pointer; font-weight:600; }
.performance-navigation nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 24px; padding-bottom:16px; }
.performance-navigation a { padding:8px 0; min-height:48px; overflow-wrap:anywhere; }
.performance-navigation a span { display:block; color:var(--gf-brand-charcoal); font-size:14px; font-weight:400; }
.performance-experience .performance-section { padding:24px; overflow-wrap:anywhere; min-width:0; margin-bottom:24px; }
.performance-experience .section-heading { align-items:flex-start; flex-wrap:wrap; gap:12px; }
.performance-status { padding:6px 10px; font-size:14px; background:var(--gf-digital-stone); border-radius:8px; }
.performance-organic .performance-status { background:var(--gf-digital-tint-orange); }
.performance-search-console .performance-status,.performance-analytics .performance-status { background:var(--gf-digital-tint-blue); }
.performance-google-ads .performance-status { background:var(--gf-digital-tint-teal); }
.performance-note { padding:12px 16px; background:var(--gf-digital-tint-yellow); border-radius:8px; }
.performance-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.performance-experience .performance-trend { min-width:0; border-top:1px solid var(--gf-digital-border-stone); padding-top:24px; }
.performance-trend h3 { font-size:18px; margin:0; }
.performance-trend .grid-line { stroke:var(--gf-digital-border-stone); stroke-width:1; }
.performance-experience .performance-trend text { font-size:18px; }
.performance-experience .performance-trend svg { width:100%; overflow:visible; }
.performance-trend polyline { stroke:var(--gf-brand-palm); vector-effect:non-scaling-stroke; }
.performance-trend circle { fill:var(--gf-brand-palm); }
.constant-value { padding:20px 0; font-variant-numeric:tabular-nums; }
.constant-value strong { font:600 24px var(--gf-font-display); display:block; }
.performance-detail-link { display:inline-flex; align-items:center; min-height:48px; margin-top:8px; }
.performance-details { border-top:1px solid var(--gf-digital-border-stone); margin-top:16px; }
.performance-table { max-width:100%; margin:16px 0 24px; }
.performance-table table { table-layout:fixed; width:100%; font-size:14px; }
.performance-table th,.performance-table td { padding:12px; overflow-wrap:anywhere; vertical-align:top; font-variant-numeric:tabular-nums; }
.performance-table caption { text-align:left; font-weight:600; padding:12px 0; }
.performance-table tbody tr:nth-child(even) { background:var(--gf-digital-canvas); }
.performance-details nav { display:flex; flex-wrap:wrap; gap:16px; }
.performance-focus { padding:24px 0; }
.performance-experience a:focus-visible,.performance-experience summary:focus-visible { outline:3px solid var(--gf-digital-deep-teal); outline-offset:3px; }
@media(max-width:1000px) {
 .performance-charts { grid-template-columns:minmax(0,1fr); }
 .performance-navigation nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .performance-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .performance-table table,.performance-table tbody,.performance-table tr { display:block; }
 .performance-table tr { padding:12px 0; border-bottom:1px solid var(--gf-digital-border-stone); }
 .performance-table td { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:12px; border:0; }
 .performance-table td::before { content:attr(data-label); font-weight:600; }
}
@media(max-width:600px) {
 .performance-navigation nav { grid-template-columns:minmax(0,1fr); }
 .performance-experience .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
 .performance-experience .performance-section { padding:16px; }
 .performance-experience .performance-header { display:block; }
 .performance-experience .performance-trend text { font-size:24px; }
 .performance-table th,.performance-table td { padding:8px 0; }
}

@media(max-width:360px){.performance-experience .metrics{grid-template-columns:minmax(0,1fr);}}

/* SE Ranking uses the same approved observations as monthly Reporting. */
.ranking-channel { padding-top:24px; margin-top:32px; border-top:1px solid var(--gf-digital-border-stone); scroll-margin-top:90px; }
.ranking-channel h3 { font-size:24px; margin:0 0 8px; }
.ranking-channel h4 { font-size:18px; margin:32px 0 8px; }
.ranking-channel h5 { font:inherit; margin:0 0 8px; }
.ranking-chart { display:block; width:100%; height:auto; max-height:320px; }
.ranking-chart text { fill:var(--gf-brand-charcoal); font-size:18px; }
.ranking-chart line { stroke:var(--gf-digital-border-stone); }
.ranking-legend { display:flex; flex-wrap:wrap; gap:12px 24px; padding:0; list-style:none; }
.ranking-legend li { display:flex; gap:8px; align-items:center; }
.ranking-legend span { display:inline-block; width:16px; height:16px; }
.rank-band-0 { fill:var(--gf-digital-deep-teal); background:var(--gf-digital-deep-teal); }
.rank-band-1 { fill:var(--gf-brand-palm); background:var(--gf-brand-palm); }
.rank-band-2 { fill:var(--gf-brand-orange); background:var(--gf-brand-orange); }
.rank-band-3 { fill:var(--gf-brand-sky); background:var(--gf-brand-sky); }
.ranking-controls { display:flex; flex-wrap:wrap; gap:16px; align-items:end; margin:16px 0; }
.ranking-controls label { display:grid; gap:8px; flex:1 1 160px; min-width:0; }
.ranking-controls input,.ranking-controls select { width:100%; min-height:48px; }
.ranking-controls :focus-visible { outline:3px solid var(--gf-digital-deep-teal); outline-offset:3px; }
.ranking-pages { display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
@media(max-width:600px){.ranking-chart text{font-size:24px}.ranking-controls{display:grid;grid-template-columns:minmax(0,1fr)}.ranking-channel h3{font-size:20px}}

/* V1 issued-report viewer: Portal chrome remains independent of report loading. */
.report-viewer { min-width:0; border:1px solid var(--gf-digital-border-stone); background:white; border-radius:12px; overflow:hidden; }
.report-viewer-heading { display:flex; justify-content:space-between; align-items:start; flex-wrap:wrap; gap:16px; padding:24px; }
.report-viewer-heading h2 { margin:0; }
.report-period { font-weight:600; }
.report-frame-container { width:100%; min-width:0; background:var(--gf-digital-canvas); }
.report-frame-container:fullscreen { background:white; }
.report-frame-container:fullscreen iframe { height:100vh; }
.report-frame-container .monthly-report { margin:0; width:100%; height:80vh; min-height:560px; }
.report-loading,.report-retry { padding:24px; margin:0; }
.report-skeleton { height:240px; background:var(--gf-digital-stone); border-radius:8px; }
.report-viewer-actions { display:flex; flex-wrap:wrap; gap:16px; padding:16px 24px; }
.report-viewer [hidden] { display:none!important; }
@media(max-width:600px){.report-viewer-heading{padding:16px}.report-frame-container .monthly-report{min-height:480px;height:78vh}.report-viewer-actions{padding:16px}}

/* Content: Operate. GF-BRAND 1.0-draft; pending canonical promotion. */
.content-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--gf-digital-border-stone);column-gap:24px;row-gap:0;margin-bottom:28px}
.content-tabs a{padding:12px 0;text-decoration:none;color:inherit;border-bottom:3px solid transparent;font-weight:500}
.content-tabs a[aria-current]{border-color:var(--gf-brand-palm);color:var(--gf-brand-palm)}
.content-segments{display:inline-flex;flex-wrap:wrap;gap:4px;background:var(--gf-digital-stone);padding:4px;border-radius:8px}
.content-segments a{padding:8px 12px;text-decoration:none;color:inherit;border-radius:4px}
.content-segments a[aria-current]{background:var(--gf-digital-white);font-weight:700}
.content-sections{margin-bottom:28px}.content-count{font-size:12px;margin-left:4px}
.content-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.content-toolbar form{display:flex;align-items:center;gap:8px}.content-toolbar label{display:flex;align-items:center;gap:8px}
.content-register{border-top:1px solid var(--gf-digital-border-stone)}
.content-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid var(--gf-digital-border-stone)}
.content-row>div{min-width:0}.content-row h2,.content-row h3,.content-gallery h2{font-size:18px;margin:0 0 8px;overflow-wrap:anywhere}
.content-row p{max-width:72ch;margin:8px 0;overflow-wrap:anywhere}.content-row-meta{flex-shrink:0;text-align:right}
.content-row>.badge{flex-shrink:0}.content-thumbnail{width:80px;height:80px;object-fit:cover;float:left;margin:0 16px 12px 0;border-radius:8px}
.content-empty{padding:48px 0;color:var(--gf-brand-charcoal)}.content-empty p{margin:0}
.content-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:28px}
.content-gallery img,.media-placeholder{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;margin-bottom:12px}
.media-placeholder{display:grid;place-items:center;background:var(--gf-digital-stone)}
.content-gallery article{min-width:0}.content-gallery p{margin:8px 0}.content-gallery h2{font-size:16px}
.media-preview-link{display:block;margin-bottom:12px;color:inherit;text-decoration:none}.media-preview{display:grid;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:var(--gf-digital-stone)}.media-preview>*{grid-area:1/1}.media-preview img{width:100%;height:100%;margin:0;visibility:hidden}.media-preview-status{display:grid;place-items:center;padding:16px;text-align:center;color:var(--gf-brand-charcoal)}.media-preview.is-loaded img{visibility:visible}.media-preview.is-loaded .media-preview-status{display:none}.media-preview.is-unavailable img{display:none}
.portal-loading-panel{padding:8px 0 32px}.portal-loading-panel>p{margin:0 0 20px;color:var(--gf-brand-charcoal)}.portal-loading-skeleton{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.portal-loading-skeleton span{display:block;height:112px;border-radius:12px;background:var(--gf-digital-stone)}
.content-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--gf-digital-border-stone)}
.content-calendar .calendar-day{min-width:0;overflow-wrap:anywhere}.content-calendar a{display:block;margin-top:12px}.content-calendar .meta{display:block}
@media(max-width:680px){.content-tabs{gap:20px}.content-segments a{padding:8px 10px}.content-toolbar{align-items:flex-start}.content-row{gap:12px;flex-direction:column}.content-row-meta{text-align:left}.content-calendar{display:block}.content-calendar .weekday,.content-calendar .calendar-pad,.content-calendar .calendar-day:not(.has-posts){display:none}.content-calendar .calendar-day{min-height:0;padding:16px 0}.content-calendar .calendar-day time{font-weight:700}.content-toolbar input{max-width:165px}}
@media(max-width:680px){.portal-loading-skeleton{grid-template-columns:minmax(0,1fr)}.portal-loading-skeleton span:not(:first-child){display:none}}

.content-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
@media(max-width:640px){.content-row-meta{align-items:flex-start}}
.content-gallery article>a:first-child{display:block;min-width:0}
.content-gallery img{display:block;max-width:100%;min-width:0}
.approval-register{max-width:1080px}.approval-register>.section-heading{margin-bottom:8px}.approval-copy{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;white-space:pre-wrap}.approval-media-needed{display:grid;place-items:center;float:left;width:80px;height:80px;margin:0 16px 12px 0;padding:8px;border-radius:8px;background:var(--gf-digital-stone);font-size:14px;font-weight:600;line-height:1.25;text-align:center}

/* GF-BRAND 1.0-draft — welcome video uses the incumbent Operate panel. */
.welcome-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 32px; align-items: start; margin-top: 24px; }
.welcome-media, .welcome-primary, .welcome-quick-links { min-width: 0; }
.welcome-primary .chips { margin-top: 16px; }
.welcome-primary .badge { overflow-wrap: anywhere; max-width: 100%; }
.welcome-quick-links { margin: 0; }
.welcome-quick-links h2 { font-size: 24px; margin-top: 0; }
.welcome-quick-links .quick-links-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.welcome-quick-links .quick-link { min-width: 0; min-height: 48px; padding: 10px 12px; align-items: center; }
.welcome-quick-links .quick-link span { min-width: 0; overflow-wrap: anywhere; }
.welcome-player { aspect-ratio: 16 / 9; width: 100%; overflow: hidden; border-radius: 12px; background: var(--gf-brand-charcoal); }
.welcome-player .welcome-video { display: block; height: 100%; }
.welcome-play { position: relative; display: grid; place-items: center; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 12px; overflow: hidden; background: var(--gf-brand-charcoal); color: white; cursor: pointer; }
.welcome-play img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.welcome-play-label { position: relative; padding: 12px 20px; border-radius: 12px; background: var(--gf-brand-charcoal); color: white; }
.welcome-play:hover .welcome-play-label { background: var(--gf-brand-palm); }
.welcome-play:focus-visible { outline-offset: -6px; }
@media (max-width: 1023px) { .welcome-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; } }
@media (max-width: 700px) { .campaign-welcome { padding: 16px; } }

.welcome-play img.welcome-thumbnail-fallback { object-fit: contain; max-width: 640px; max-height: 480px; margin: auto; }
.welcome-play img.welcome-thumbnail-small { max-width: 480px; max-height: 360px; }
.quick-link-unavailable { cursor: default; }
.quick-link-unavailable:hover { background: transparent; }
.quick-link-unavailable > span:first-child { font-size: 16px; line-height: 1.55; }

/* Native invoice archive — Operate. GF-BRAND 1.0-draft; pending canonical promotion. */
.billing-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:0 0 24px; border-bottom:1px solid var(--gf-digital-border-stone); }
.billing-intro > div { max-width:68ch; }
.billing-intro h2 { margin-bottom:8px; }
.billing-intro p { margin:0; }
.billing-archive { margin-top:24px; min-width:0; }
.billing-skeleton { padding:8px 0; }
.billing-skeleton > p { margin:0 0 20px; }
.billing-skeleton > div { display:grid; gap:1px; background:var(--gf-digital-border-stone); border-block:1px solid var(--gf-digital-border-stone); }
.billing-skeleton span { display:block; min-height:96px; background:var(--gf-digital-white); }
.invoice-list { border-block:1px solid var(--gf-digital-border-stone); background:var(--gf-digital-white); }
.invoice-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(130px,auto) minmax(190px,auto); align-items:center; gap:24px; padding:24px 0; border-bottom:1px solid var(--gf-digital-border-stone); min-width:0; }
.invoice-row:last-child { border-bottom:0; }
.invoice-primary { min-width:0; }
.invoice-number { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.invoice-number h3 { margin:0; overflow-wrap:anywhere; }
.invoice-primary p { margin:8px 0 0; overflow-wrap:anywhere; }
.invoice-amount { text-align:right; font-variant-numeric:tabular-nums; }
.invoice-amount strong,.invoice-amount span { display:block; }
.invoice-amount strong { font-family:var(--gf-font-display); font-size:24px; }
.invoice-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.invoice-action { margin:0; }
.badge.failure { background:var(--gf-digital-tint-orange); color:var(--gf-brand-charcoal); }
.badge.neutral { background:var(--gf-digital-stone); color:var(--gf-brand-charcoal); }
.billing-load-more { margin-top:24px; }
.billing-state { max-width:760px; }
.billing-security-note { max-width:78ch; margin-top:24px; font-size:14px; }
.billing-review-note { padding:12px 16px; background:var(--gf-digital-tint-yellow); border-radius:8px; max-width:78ch; }
.billing-archive [aria-busy="true"],.billing-load-more:disabled { cursor:wait; }
.billing-load-more:disabled { opacity:.65; }
@media(max-width:800px) {
 .invoice-row { grid-template-columns:minmax(0,1fr) auto; gap:16px; }
 .invoice-actions { grid-column:1 / -1; justify-content:flex-start; }
}
@media(max-width:600px) {
 .billing-intro { display:block; }
 .billing-intro .button { width:100%; margin-top:16px; }
 .invoice-row { display:block; padding:20px 0; }
 .invoice-amount { text-align:left; margin-top:16px; }
 .invoice-actions { display:grid; grid-template-columns:minmax(0,1fr); justify-content:stretch; margin-top:16px; }
 .invoice-action,.invoice-action .button,.billing-load-more { width:100%; }
 .invoice-actions:empty::after { margin-top:16px; }
}
