/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or
    ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    *,
    :before,
    :after,
    ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}
@layer theme {
  :root,
  :host {
    --font-sans:
      ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
      "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono:
      ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --spacing: 0.25rem;
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}
@layer base {
  *,
  :after,
  :before,
  ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }
  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }
  html,
  :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(
      --default-font-family,
      ui-sans-serif,
      system-ui,
      sans-serif,
      "Apple Color Emoji",
      "Segoe UI Emoji",
      "Segoe UI Symbol",
      "Noto Color Emoji"
    );
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b,
  strong {
    font-weight: bolder;
  }
  code,
  kbd,
  samp,
  pre {
    font-family: var(
      --default-mono-font-family,
      ui-monospace,
      SFMono-Regular,
      Menlo,
      Monaco,
      Consolas,
      "Liberation Mono",
      "Courier New",
      monospace
    );
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(
      --default-mono-font-variation-settings,
      normal
    );
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub,
  sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol,
  ul,
  menu {
    list-style: none;
  }
  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    vertical-align: middle;
    display: block;
  }
  img,
  video {
    max-width: 100%;
    height: auto;
  }
  button,
  input,
  select,
  optgroup,
  textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }
  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not ((-webkit-appearance: -apple-pay-button))) or
    (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }
    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }
  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button,
  input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }
  ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button {
    height: auto;
  }
  ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer components;
@layer utilities {
  .visible {
    visibility: visible;
  }
  .absolute {
    position: absolute;
  }
  .fixed {
    position: fixed;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .start {
    inset-inline-start: var(--spacing);
  }
  .end {
    inset-inline-end: var(--spacing);
  }
  .container {
    width: 100%;
  }
  @media (width>=40rem) {
    .container {
      max-width: 40rem;
    }
  }
  @media (width>=48rem) {
    .container {
      max-width: 48rem;
    }
  }
  @media (width>=64rem) {
    .container {
      max-width: 64rem;
    }
  }
  @media (width>=80rem) {
    .container {
      max-width: 80rem;
    }
  }
  @media (width>=96rem) {
    .container {
      max-width: 96rem;
    }
  }
  .flex {
    display: flex;
  }
  .hidden {
    display: none;
  }
  .table {
    display: table;
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,)
      var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .resize {
    resize: both;
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,)
      var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,)
      var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .filter {
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,)
      var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,)
      var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
}
:root {
  --navy: #0a2d68;
  --navy-dark: #061f4f;
  --royal: #174c9a;
  --sky: #eaf3ff;
  --ice: #f5f9ff;
  --ink: #14233b;
  --muted: #65748b;
  --line: #0a2d681f;
  --green: #16735a;
  --green-soft: #dff5eb;
  --yellow: #a76b05;
  --yellow-soft: #fff2c8;
  --orange: #b75b12;
  --orange-soft: #fff0df;
  --red: #a43e43;
  --red-soft: #fde8e8;
  --white: #ffffffdb;
}
* {
  box-sizing: border-box;
}
html {
  background: #f5f9ff;
}
body {
  color: var(--ink);
  font-family:
    var(--font-poppins), "Avenir Next", Avenir, Helvetica, Arial, sans-serif;
  background: #f5f9ff;
  margin: 0;
}
button,
input,
textarea,
select {
  font: inherit;
}
button {
  -webkit-tap-highlight-color: transparent;
}
button:disabled {
  cursor: wait;
}
.site-shell {
  background: linear-gradient(#fff 0, #f7faff 30rem, #f2f7fd 100%);
  min-height: 100vh;
  position: relative;
  overflow: hidden;
}
.ambient {
  z-index: 0;
  filter: blur(9rem);
  opacity: 0.32;
  pointer-events: none;
  border-radius: 50%;
  width: 32rem;
  height: 32rem;
  position: fixed;
}
.ambient-one {
  background: #92bdf4;
  top: 13rem;
  left: -14rem;
}
.ambient-two {
  background: #b7ead8;
  top: 42rem;
  right: -17rem;
}
.brand-header {
  z-index: 2;
  text-align: center;
  background: #fff;
  padding: 1.6rem 1.5rem 1.15rem;
  position: relative;
}
.brand-image {
  width: min(72rem, 91vw);
  height: auto;
  margin: 0 auto;
  display: block;
}
.portal-title {
  color: var(--navy);
  letter-spacing: 0.025em;
  margin: 0.9rem 0 0;
  font-size: clamp(1rem, 1.6vw, 1.3rem);
  font-weight: 500;
}
.public-accent {
  z-index: 2;
  background: linear-gradient(
    90deg,
    var(--navy-dark),
    var(--royal) 55%,
    var(--green)
  );
  height: 0.42rem;
  position: relative;
  box-shadow: 0 8px 25px #061f4f1f;
}
.portal-nav {
  z-index: 10;
  background: linear-gradient(115deg, var(--navy-dark), var(--navy));
  color: #fff;
  position: relative;
  box-shadow: 0 10px 35px #061f4f33;
}
.nav-inner {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  width: min(1180px, 100% - 2.5rem);
  min-height: 4.4rem;
  margin: 0 auto;
  display: flex;
}
.nav-links {
  align-self: stretch;
  display: flex;
}
.nav-link {
  appearance: none;
  color: #ffffffb8;
  cursor: pointer;
  background: 0 0;
  border: 0;
  padding: 0 1.25rem;
  font-size: 0.88rem;
  font-weight: 500;
  position: relative;
}
.nav-link:after {
  content: "";
  background: #7fd4b6;
  border-radius: 3px 3px 0 0;
  height: 3px;
  transition: transform 0.18s;
  position: absolute;
  bottom: 0;
  left: 1.25rem;
  right: 1.25rem;
  transform: scaleX(0);
}
.nav-link:hover,
.nav-link.active {
  color: #fff;
}
.nav-link.active:after {
  transform: scaleX(1);
}
.staff-chip {
  color: #ffffffe0;
  background: #ffffff1c;
  border: 1px solid #ffffff24;
  border-radius: 999px;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.85rem;
  font-size: 0.76rem;
  display: flex;
}
.staff-button {
  cursor: pointer;
  color: #fff;
}
.staff-button:hover {
  background: #ffffff2b;
}
.staff-dot {
  background: #7fd4b6;
  border-radius: 50%;
  width: 0.48rem;
  height: 0.48rem;
  box-shadow: 0 0 0 4px #7fd4b626;
}
.content-wrap {
  z-index: 1;
  width: min(1180px, 100% - 2.5rem);
  margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 5.3rem) 0 5rem;
  position: relative;
}
.data-alert {
  z-index: 2;
  background: var(--red-soft);
  width: min(1180px, 100% - 2.5rem);
  color: var(--red);
  border: 1px solid #a43e4338;
  border-radius: 0.9rem;
  margin: 1rem auto -1.6rem;
  padding: 0.8rem 1rem;
  font-size: 0.76rem;
  position: relative;
}
.eyebrow {
  color: var(--royal);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 600;
}
h1,
h2,
p {
  text-wrap: pretty;
}
h1 {
  color: var(--navy-dark);
  letter-spacing: -0.045em;
  margin: 0;
  font-size: clamp(2rem, 4.4vw, 3.6rem);
  font-weight: 550;
  line-height: 1.06;
}
.hero-copy {
  max-width: 42rem;
  color: var(--muted);
  margin: 0.9rem 0 0;
  font-size: 1rem;
  line-height: 1.7;
}
.hero-panel {
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  margin-bottom: 2rem;
  display: flex;
}
.progress-orb {
  --progress: 180deg;
  background: conic-gradient(var(--green) var(--progress), #dde8f4 0);
  border-radius: 50%;
  flex: none;
  width: 7rem;
  height: 7rem;
  padding: 7px;
  box-shadow: 0 14px 40px #0a2d6821;
}
.progress-orb-inner {
  background: #fffffff2;
  border-radius: 50%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
}
.progress-orb strong {
  color: var(--navy);
  font-size: 1.55rem;
  line-height: 1;
}
.progress-orb span {
  color: var(--muted);
  margin-top: 0.25rem;
  font-size: 0.7rem;
}
.glass-card {
  background: var(--white);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid #ffffffe6;
  box-shadow:
    0 18px 55px #0d306017,
    inset 0 0 0 1px #0a2d6809;
}
.week-toolbar {
  border-radius: 1.4rem;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  display: flex;
}
.round-button {
  border: 1px solid var(--line);
  width: 2.6rem;
  height: 2.6rem;
  color: var(--navy);
  cursor: pointer;
  background: #fff;
  border-radius: 50%;
  place-items: center;
  transition:
    transform 0.16s,
    box-shadow 0.16s;
  display: grid;
}
.round-button:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px #0a2d681f;
}
.round-button:disabled {
  opacity: 0.35;
  cursor: default;
}
.week-label {
  flex-direction: column;
  min-width: 12.5rem;
  display: flex;
}
.week-label span {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.68rem;
}
.week-label strong {
  color: var(--navy-dark);
  margin-top: 0.08rem;
  font-size: 0.98rem;
}
.toolbar-spacer {
  flex: 1;
}
.legend {
  color: var(--muted);
  align-items: center;
  gap: 1rem;
  font-size: 0.7rem;
  display: flex;
}
.legend span,
.timeline-caption span {
  white-space: nowrap;
  align-items: center;
  gap: 0.4rem;
  display: flex;
}
.legend-dot {
  border-radius: 50%;
  width: 0.55rem;
  height: 0.55rem;
  display: inline-block;
}
.legend-dot.complete {
  background: var(--green);
}
.legend-dot.skipped {
  background: var(--orange);
}
.legend-dot.underway {
  background: #e6ae35;
}
.legend-dot.attention {
  background: var(--red);
}
.pending-toggle {
  cursor: pointer;
  color: var(--navy);
  align-items: center;
  gap: 0.45rem;
  font-size: 0.75rem;
  font-weight: 500;
  display: flex;
}
.pending-toggle input {
  appearance: none;
  cursor: pointer;
  background: #d7e1ec;
  border-radius: 999px;
  width: 2.25rem;
  height: 1.3rem;
  padding: 2px;
  transition: background 0.16s;
}
.pending-toggle input:after {
  content: "";
  background: #fff;
  border-radius: 50%;
  width: 0.95rem;
  height: 0.95rem;
  transition: transform 0.16s;
  display: block;
  box-shadow: 0 2px 6px #0000002b;
}
.pending-toggle input:checked {
  background: var(--green);
}
.pending-toggle input:checked:after {
  transform: translate(0.95rem);
}
.board-mode-switch {
  border-radius: 1rem;
  gap: 0.35rem;
  width: fit-content;
  margin: 0 0 1rem;
  padding: 0.35rem;
  display: flex;
}
.board-mode-switch button {
  min-width: 13.5rem;
  color: var(--muted);
  cursor: pointer;
  text-align: left;
  background: 0 0;
  border: 0;
  border-radius: 0.75rem;
  flex-direction: column;
  align-items: flex-start;
  padding: 0.65rem 0.85rem;
  display: flex;
}
.board-mode-switch button span {
  color: var(--navy);
  font-size: 0.75rem;
  font-weight: 600;
}
.board-mode-switch button small {
  margin-top: 0.12rem;
  font-size: 0.6rem;
}
.board-mode-switch button.active {
  background: var(--navy);
  color: #ffffffb8;
  box-shadow: 0 8px 20px #0a2d6829;
}
.board-mode-switch button.active span {
  color: #fff;
}
.board {
  border-radius: 1.5rem;
  overflow: hidden;
}
.board-header {
  border-bottom: 1px solid var(--line);
  background: #0a2d680b;
  grid-template-columns: minmax(250px, 1.75fr) repeat(6, minmax(90px, 1fr));
  padding: 0 1rem;
  display: grid;
}
.communication-heading,
.channel-heading {
  min-height: 3.5rem;
  color: var(--muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  align-items: center;
  font-size: 0.66rem;
  font-weight: 600;
  display: flex;
}
.channel-heading {
  text-align: center;
  border-left: 1px solid #0a2d680e;
  justify-content: center;
  padding: 0.4rem;
}
.board-row {
  border-bottom: 1px solid var(--line);
  background: #ffffff75;
  grid-template-columns: minmax(250px, 1.75fr) minmax(0, 6fr);
  padding: 0 1rem;
  transition: background 0.16s;
  display: grid;
}
.board-row:last-child {
  border-bottom: 0;
}
.board-row:hover {
  background: #ffffffc7;
}
.communication-cell {
  text-align: left;
  cursor: pointer;
  background: 0 0;
  border: 0;
  flex-direction: column;
  align-items: flex-start;
  padding: 1.2rem 0.9rem 1.2rem 0.15rem;
  display: flex;
}
.ministry-label {
  color: var(--royal);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.63rem;
  font-weight: 600;
}
.communication-cell strong {
  color: var(--navy-dark);
  margin-top: 0.24rem;
  font-size: 0.91rem;
  line-height: 1.3;
}
.event-date {
  color: var(--muted);
  margin-top: 0.35rem;
  font-size: 0.68rem;
  line-height: 1.35;
}
.view-request {
  color: var(--royal);
  opacity: 0;
  margin-top: 0.65rem;
  font-size: 0.66rem;
  font-weight: 500;
  transition: all 0.16s;
  transform: translate(-4px);
}
.communication-cell:hover .view-request,
.communication-cell:focus-visible .view-request {
  opacity: 1;
  transform: translate(0);
}
.placement-grid {
  grid-template-columns: repeat(6, minmax(90px, 1fr));
  display: grid;
}
.placement-control {
  cursor: pointer;
  min-height: 7.25rem;
  color: var(--muted);
  background: 0 0;
  border: 0;
  border-left: 1px solid #0a2d680e;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.35rem;
  padding: 0.7rem 0.45rem;
  transition:
    background 0.15s,
    color 0.15s,
    transform 0.15s;
  display: flex;
}
.placement-control:not(.na):hover {
  transform: translateY(-1px);
}
.placement-control.done {
  color: var(--green);
  background: linear-gradient(#dff5ebc2, #dff5eb6b);
}
.placement-control.skipped {
  color: var(--orange);
  background: linear-gradient(#fff0dfeb, #fff0df85);
}
.placement-control.pending {
  color: var(--yellow);
  background: linear-gradient(#fff2c899, #fff2c842);
}
.placement-control.urgent {
  color: var(--red);
  background: linear-gradient(#fde8e8d6, #fde8e870);
}
.placement-control.na {
  cursor: default;
  color: #bbc5d0;
}
.placement-status-button {
  width: 100%;
  color: inherit;
  cursor: pointer;
  background: 0 0;
  border: 0;
  flex-direction: column;
  flex: 1;
  justify-content: center;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem;
  display: flex;
}
.placement-skip-button {
  color: var(--orange);
  cursor: pointer;
  background: #ffffff8f;
  border: 1px solid #b75b1233;
  border-radius: 999px;
  width: 1.8rem;
  height: 1.25rem;
  padding: 0;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 0.65;
}
.placement-skip-button:hover:not(:disabled),
.placement-skip-button:focus-visible {
  background: #b75b121a;
  outline: 2px solid #b75b123d;
  outline-offset: 2px;
}
.state-icon {
  border: 1px solid;
  border-radius: 50%;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  font-size: 0.85rem;
  font-style: normal;
  font-weight: 600;
  display: grid;
}
.placement-status-button span:not(.placement-mobile-label) {
  text-align: center;
  font-size: 0.62rem;
  font-weight: 550;
  line-height: 1.2;
}
.placement-mobile-label {
  display: none;
}
.not-requested {
  font-size: 1.1rem;
}
.board-note {
  color: var(--muted);
  margin: 1rem 0.5rem 0;
  font-size: 0.72rem;
}
.channel-output-wrap {
  grid-template-columns: minmax(190px, 0.38fr) minmax(0, 1.62fr);
  align-items: start;
  gap: 1rem;
  display: grid;
}
.channel-output-tabs {
  flex-direction: column;
  gap: 0.45rem;
  display: flex;
  position: sticky;
  top: 1rem;
}
.channel-output-tabs button {
  border: 1px solid var(--line);
  width: 100%;
  min-height: 3.6rem;
  color: var(--navy);
  text-align: left;
  cursor: pointer;
  background: #ffffffb8;
  border-radius: 0.9rem;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem;
  padding: 0.7rem 0.8rem;
  display: flex;
  box-shadow: 0 8px 24px #0d30600b;
}
.channel-output-tabs button span {
  font-size: 0.7rem;
  font-weight: 550;
  line-height: 1.25;
}
.channel-output-tabs button i {
  background: var(--yellow-soft);
  min-width: 1.5rem;
  height: 1.5rem;
  color: var(--yellow);
  border-radius: 999px;
  place-items: center;
  padding: 0 0.35rem;
  font-size: 0.62rem;
  font-style: normal;
  font-weight: 650;
  display: grid;
}
.channel-output-tabs button.active {
  color: #fff;
  background: linear-gradient(115deg, var(--navy-dark), var(--royal));
  border-color: #0000;
  box-shadow: 0 12px 30px #0a2d682e;
}
.channel-output-tabs button.active i {
  color: #fff;
  background: #ffffff29;
}
.channel-run-sheet {
  border-radius: 1.5rem;
  overflow: hidden;
}
.channel-run-sheet-heading {
  border-bottom: 1px solid var(--line);
  background: #0a2d6809;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  min-height: 7rem;
  padding: 1.35rem 1.5rem;
  display: flex;
}
.channel-run-sheet-heading .eyebrow {
  margin-bottom: 0.35rem;
  font-size: 0.62rem;
}
.channel-run-sheet-heading h2 {
  color: var(--navy-dark);
  letter-spacing: -0.025em;
  margin: 0;
  font-size: 1.5rem;
}
.channel-run-sheet-heading p:not(.eyebrow) {
  color: var(--muted);
  margin: 0.4rem 0 0;
  font-size: 0.7rem;
}
.print-button {
  white-space: nowrap;
}
.channel-output-list {
  padding: 0.2rem 1.5rem;
}
.channel-output-card {
  border-bottom: 1px solid var(--line);
  grid-template-columns: 2.2rem minmax(0, 1fr);
  gap: 0.9rem;
  padding: 1.35rem 0;
  display: grid;
}
.channel-output-card:last-child {
  border-bottom: 0;
}
.channel-output-number {
  background: var(--sky);
  width: 2rem;
  height: 2rem;
  color: var(--royal);
  border-radius: 50%;
  place-items: center;
  font-size: 0.68rem;
  font-weight: 650;
  display: grid;
}
.channel-output-card.done .channel-output-number {
  background: var(--green-soft);
  color: var(--green);
}
.channel-output-card.skipped .channel-output-number {
  background: var(--orange-soft);
  color: var(--orange);
}
.channel-output-card.urgent .channel-output-number {
  background: var(--red-soft);
  color: var(--red);
}
.channel-output-title-row {
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  display: flex;
}
.channel-output-title-row h3 {
  color: var(--navy-dark);
  margin: 0.18rem 0 0;
  font-size: 1rem;
  line-height: 1.35;
}
.channel-output-copy {
  color: var(--ink);
  white-space: pre-wrap;
  margin: 0.85rem 0;
  font-size: 0.8rem;
  line-height: 1.7;
}
.announcement-hyperlink {
  margin: 0.4rem 0 0.8rem;
}
.announcement-hyperlink a {
  color: var(--royal);
  font-size: 0.74rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.16rem;
}
.announcement-hyperlink a:hover {
  color: var(--navy-dark);
}
.channel-output-meta {
  color: var(--muted);
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  font-size: 0.66rem;
  display: flex;
}
.channel-output-meta a {
  color: var(--royal);
  font-weight: 550;
  text-decoration: none;
}
.channel-output-notes {
  background: var(--sky);
  border-left: 3px solid #9ab9df;
  border-radius: 0 0.65rem 0.65rem 0;
  flex-direction: column;
  gap: 0.22rem;
  margin-top: 0.85rem;
  padding: 0.65rem 0.8rem;
  display: flex;
}
.channel-output-notes strong {
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.58rem;
}
.channel-output-notes span {
  color: var(--muted);
  white-space: pre-wrap;
  font-size: 0.68rem;
  line-height: 1.5;
}
.channel-output-actions {
  justify-content: flex-end;
  align-items: center;
  gap: 0.55rem;
  margin-top: 0.9rem;
  display: flex;
}
.text-button {
  color: var(--royal);
  cursor: pointer;
  background: 0 0;
  border: 0;
  padding: 0.5rem 0.3rem;
  font-size: 0.66rem;
  font-weight: 550;
}
.channel-complete-button {
  background: var(--yellow-soft);
  color: var(--yellow);
  cursor: pointer;
  border: 1px solid #a76b052e;
  border-radius: 999px;
  padding: 0.55rem 0.78rem;
  font-size: 0.64rem;
  font-weight: 600;
}
.channel-complete-button.urgent {
  background: var(--red-soft);
  color: var(--red);
  border-color: #a43e432e;
}
.channel-complete-button.done {
  background: var(--green-soft);
  color: var(--green);
  border-color: #16735a2e;
}
.channel-skip-button {
  color: var(--orange);
  cursor: pointer;
  background: #fff;
  border: 1px solid #b75b1233;
  border-radius: 999px;
  padding: 0.55rem 0.78rem;
  font-size: 0.64rem;
  font-weight: 600;
}
.channel-skip-button.active {
  background: var(--orange-soft);
}
.empty-state {
  text-align: center;
  padding: 4.5rem 2rem;
}
.empty-check {
  background: var(--green-soft);
  width: 3rem;
  height: 3rem;
  color: var(--green);
  border-radius: 50%;
  place-items: center;
  margin: 0 auto 1rem;
  font-weight: 600;
  display: grid;
}
.empty-state h2 {
  color: var(--navy);
  margin: 0;
  font-size: 1.25rem;
}
.empty-state p {
  color: var(--muted);
  margin: 0.5rem 0 0;
  font-size: 0.85rem;
}
.loading-ring {
  border: 3px solid #dce8f5;
  border-top-color: var(--royal);
  border-radius: 50%;
  width: 2.5rem;
  height: 2.5rem;
  margin: 0 auto 1rem;
  animation: 0.8s linear infinite spin;
  display: block;
}
.manage-heading {
  align-items: center;
}
.management-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
  margin-bottom: 1rem;
  display: grid;
}
.summary-card {
  min-height: 6rem;
  color: var(--muted);
  cursor: pointer;
  text-align: left;
  background: #ffffffb3;
  border: 1px solid #ffffffe6;
  border-radius: 1.15rem;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: 1rem 1.1rem;
  transition:
    transform 0.15s,
    border-color 0.15s,
    background 0.15s;
  display: flex;
  box-shadow: 0 10px 30px #0d30600e;
}
.summary-card:hover {
  border-color: #174c9a33;
  transform: translateY(-2px);
}
.summary-card span {
  font-size: 0.68rem;
  font-weight: 550;
}
.summary-card strong {
  color: var(--navy-dark);
  font-size: 1.6rem;
  line-height: 1;
}
.summary-card.active {
  background: var(--sky);
  border-color: #174c9a2e;
}
.summary-card.attention-card strong {
  color: var(--red);
}
.summary-card.ready-card strong {
  color: var(--green);
}
.management-card {
  border-radius: 1.5rem;
  overflow: hidden;
}
.management-tabs {
  border-bottom: 1px solid var(--line);
  gap: 0.4rem;
  padding: 1rem 1.2rem 0;
  display: flex;
}
.management-tab {
  color: var(--muted);
  cursor: pointer;
  background: 0 0;
  border: 0;
  padding: 0.8rem 0.9rem 1rem;
  font-size: 0.76rem;
  font-weight: 550;
  position: relative;
}
.management-tab:after {
  content: "";
  background: var(--green);
  border-radius: 3px 3px 0 0;
  height: 3px;
  transition: transform 0.15s;
  position: absolute;
  bottom: -1px;
  left: 0.9rem;
  right: 0.9rem;
  transform: scaleX(0);
}
.management-tab.active {
  color: var(--navy);
}
.management-tab.active:after {
  transform: scaleX(1);
}
.management-tab span {
  background: var(--sky);
  min-width: 1.3rem;
  height: 1.3rem;
  color: var(--royal);
  border-radius: 999px;
  place-items: center;
  margin-left: 0.3rem;
  font-size: 0.6rem;
  display: inline-grid;
}
.management-toolbar {
  border-bottom: 1px solid var(--line);
  background: #ffffff52;
  grid-template-columns: minmax(260px, 1fr) 180px 170px auto;
  align-items: end;
  gap: 0.75rem;
  padding: 1.1rem 1.2rem;
  display: grid;
}
.search-field,
.filter-field {
  color: var(--muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.61rem;
  font-weight: 600;
  display: flex;
}
.search-field input,
.filter-field select {
  width: 100%;
  height: 2.65rem;
  color: var(--ink);
  text-transform: none;
  letter-spacing: 0;
  background: #fff;
  border: 1px solid #0a2d6821;
  border-radius: 0.75rem;
  outline: none;
  padding: 0 0.85rem;
  font-size: 0.72rem;
}
.search-field input:focus,
.filter-field select:focus {
  border-color: #174c9a80;
  box-shadow: 0 0 0 4px #174c9a14;
}
.clear-filters {
  height: 2.65rem;
  color: var(--royal);
  cursor: pointer;
  white-space: nowrap;
  background: 0 0;
  border: 0;
  font-size: 0.68rem;
  font-weight: 550;
}
.management-table-header,
.management-row {
  grid-template-columns:
    minmax(220px, 1.45fr)
    minmax(145px, 0.85fr)
    minmax(145px, 0.85fr)
    minmax(190px, 1.1fr)
    minmax(120px, 0.68fr)
    minmax(165px, 0.8fr);
  column-gap: 1rem;
  padding: 0 1.2rem;
  display: grid;
}
.management-table-header {
  border-bottom: 1px solid var(--line);
  min-height: 3.1rem;
  color: var(--muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: #0a2d6809;
  align-items: center;
  font-size: 0.6rem;
  font-weight: 600;
}
.management-row {
  border-bottom: 1px solid var(--line);
  background: #ffffff70;
  align-items: center;
  min-height: 6.9rem;
}
.management-row:last-child {
  border-bottom: 0;
}
.management-row:hover {
  background: #ffffffba;
}
.management-title {
  text-align: left;
  cursor: pointer;
  background: 0 0;
  border: 0;
  flex-direction: column;
  align-items: flex-start;
  padding: 1rem 0;
  display: flex;
}
.management-title > span {
  color: var(--royal);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.58rem;
  font-weight: 600;
}
.management-title strong {
  color: var(--navy-dark);
  margin-top: 0.24rem;
  font-size: 0.82rem;
  line-height: 1.35;
}
.management-title small,
.management-event small,
.management-window small {
  color: var(--muted);
  margin-top: 0.28rem;
  font-size: 0.63rem;
}
.management-event {
  color: var(--navy-dark);
  flex-direction: column;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.4;
  display: flex;
}
.management-event small {
  font-weight: 500;
}
.management-window {
  color: var(--navy);
  flex-direction: column;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.35;
  display: flex;
}
.channel-pills {
  flex-wrap: wrap;
  gap: 0.3rem;
  display: flex;
}
.channel-pills span {
  background: var(--sky);
  color: var(--royal);
  border-radius: 999px;
  padding: 0.28rem 0.46rem;
  font-size: 0.55rem;
  font-weight: 550;
}
.status-pill {
  white-space: nowrap;
  border-radius: 999px;
  align-items: center;
  gap: 0.4rem;
  padding: 0.42rem 0.58rem;
  font-size: 0.59rem;
  font-weight: 600;
  display: inline-flex;
}
.status-pill i {
  background: currentColor;
  border-radius: 50%;
  width: 0.45rem;
  height: 0.45rem;
}
.status-pill.done {
  background: var(--green-soft);
  color: var(--green);
}
.status-pill.skipped {
  background: var(--orange-soft);
  color: var(--orange);
}
.status-pill.pending {
  background: var(--yellow-soft);
  color: var(--yellow);
}
.status-pill.urgent {
  background: var(--red-soft);
  color: var(--red);
}
.management-actions {
  flex-wrap: wrap;
  gap: 0.32rem;
  display: flex;
}
.management-actions button {
  border: 1px solid var(--line);
  color: var(--navy);
  cursor: pointer;
  background: #fff;
  border-radius: 999px;
  padding: 0.4rem 0.58rem;
  font-size: 0.58rem;
  font-weight: 550;
}
.management-actions button:hover {
  border-color: #174c9a52;
}
.management-actions .danger-action {
  color: var(--red);
}
.management-empty {
  text-align: center;
  padding: 4rem 2rem;
}
.management-empty h2 {
  color: var(--navy);
  margin: 0;
  font-size: 1.2rem;
}
.management-empty p {
  color: var(--muted);
  font-size: 0.75rem;
}
.page-heading-row {
  justify-content: space-between;
  align-items: flex-end;
  gap: 2rem;
  margin-bottom: 2.2rem;
  display: flex;
}
.primary-button,
.secondary-button {
  cursor: pointer;
  border: 0;
  border-radius: 999px;
  font-weight: 550;
  transition:
    transform 0.16s,
    box-shadow 0.16s;
}
.primary-button {
  background: linear-gradient(115deg, var(--navy-dark), var(--royal));
  color: #fff;
  padding: 0.9rem 1.35rem;
  box-shadow: 0 10px 25px #0a2d6833;
}
.primary-button:hover,
.secondary-button:hover {
  transform: translateY(-1px);
}
.primary-button.compact {
  padding: 0.78rem 1.1rem;
  font-size: 0.8rem;
}
.secondary-button {
  border: 1px solid var(--line);
  color: var(--navy);
  background: #fff;
  padding: 0.72rem 1rem;
  font-size: 0.75rem;
}
.timeline-card {
  border-radius: 1.5rem;
  overflow: hidden;
}
.timeline-header,
.timeline-row {
  grid-template-columns: minmax(255px, 1.6fr) repeat(4, minmax(115px, 1fr));
  display: grid;
}
.timeline-header {
  border-bottom: 1px solid var(--line);
  background: #0a2d680b;
  padding: 0 1.2rem;
}
.timeline-header > div {
  min-height: 4.2rem;
  color: var(--muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  flex-direction: column;
  justify-content: center;
  font-size: 0.64rem;
  display: flex;
}
.timeline-header > div:not(:first-child) {
  border-left: 1px solid var(--line);
  align-items: center;
}
.timeline-header span {
  font-size: 0.55rem;
}
.timeline-header strong {
  color: var(--navy);
  margin-top: 0.2rem;
  font-size: 0.75rem;
}
.timeline-row {
  border: 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
  cursor: pointer;
  width: 100%;
  color: inherit;
  background: #ffffff6b;
  padding: 0 1.2rem;
}
.timeline-row:last-child {
  border-bottom: 0;
}
.timeline-row:hover {
  background: #ffffffc2;
}
.timeline-label {
  flex-direction: column;
  justify-content: center;
  min-height: 5rem;
  padding-right: 1rem;
  display: flex;
}
.timeline-label span {
  color: var(--royal);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.6rem;
}
.timeline-label strong {
  color: var(--navy-dark);
  margin-top: 0.25rem;
  font-size: 0.83rem;
}
.timeline-week {
  border-left: 1px solid var(--line);
  align-items: center;
  min-height: 5rem;
  padding: 0;
  display: flex;
}
.timeline-band {
  width: calc(100% + 1px);
  height: 0.55rem;
  display: block;
  position: relative;
}
.timeline-band i {
  border-radius: 999px;
  position: absolute;
  inset: 0 2px;
  box-shadow: 0 5px 12px #0a2d681a;
}
.timeline-band.done i {
  background: linear-gradient(90deg, #46a985, var(--green));
}
.timeline-band.pending i {
  background: linear-gradient(90deg, #f1c65e, #e3a51f);
}
.timeline-band.urgent i {
  background: linear-gradient(90deg, #d77c80, var(--red));
}
.timeline-caption {
  color: var(--muted);
  justify-content: flex-end;
  gap: 1.2rem;
  margin-top: 1rem;
  font-size: 0.68rem;
  display: flex;
}
.submit-wrap {
  max-width: 950px;
}
.submit-heading {
  align-items: center;
}
.step-chip {
  border: 1px solid var(--line);
  color: var(--royal);
  white-space: nowrap;
  background: #ffffffbf;
  border-radius: 999px;
  padding: 0.65rem 1rem;
  font-size: 0.72rem;
}
.staff-access-link {
  font-weight: 550;
  text-decoration: none;
}
.staff-access-link:hover {
  background: #fff;
}
.request-form {
  flex-direction: column;
  gap: 1rem;
  display: flex;
}
.form-section {
  border-radius: 1.5rem;
  grid-template-columns: 2.7rem 1fr;
  gap: 1.3rem;
  padding: clamp(1.25rem, 4vw, 2.2rem);
  display: grid;
}
.section-number {
  background: var(--navy);
  color: #fff;
  border-radius: 50%;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  font-size: 0.8rem;
  display: grid;
  box-shadow: 0 8px 18px #0a2d682e;
}
.section-content h2 {
  color: var(--navy-dark);
  letter-spacing: -0.02em;
  margin: 0.35rem 0 1.2rem;
  font-size: 1.2rem;
}
.form-subsection {
  border: 1px solid var(--line);
  background: #eaf3ff75;
  border-radius: 1rem;
  margin: 0.15rem 0 1rem;
  padding: 1rem 1rem 0;
}
.section-content .form-subsection h3 {
  color: var(--navy);
  margin: 0 0 0.9rem;
  font-size: 0.82rem;
  font-weight: 600;
}
.section-help {
  color: var(--muted);
  margin: -1rem 0 1.2rem;
  font-size: 0.78rem;
}
.form-grid {
  gap: 1rem;
  display: grid;
}
.form-grid.two-column {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.section-content label {
  color: var(--navy-dark);
  flex-direction: column;
  gap: 0.45rem;
  margin-bottom: 1rem;
  font-size: 0.73rem;
  font-weight: 550;
  display: flex;
}
.section-content input,
.section-content textarea {
  width: 100%;
  color: var(--ink);
  background: #ffffffd1;
  border: 1px solid #0a2d6821;
  border-radius: 0.85rem;
  outline: none;
  padding: 0.84rem 0.95rem;
  transition:
    border 0.16s,
    box-shadow 0.16s;
  box-shadow: 0 4px 16px #0a2d6806;
}
.section-content input:focus,
.section-content textarea:focus {
  border-color: #174c9a80;
  box-shadow: 0 0 0 4px #174c9a14;
}
.section-content textarea {
  resize: vertical;
  line-height: 1.55;
}
.optional {
  color: var(--muted);
  font-weight: 400;
}
.channel-choices {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  display: grid;
}
.channel-choice {
  min-height: 4.2rem;
  color: var(--navy);
  cursor: pointer;
  text-align: left;
  background: #ffffffbd;
  border: 1px solid #0a2d681f;
  border-radius: 1rem;
  justify-content: space-between;
  align-items: center;
  padding: 0.8rem 1rem;
  transition: all 0.15s;
  display: flex;
}
.channel-choice span {
  font-size: 0.75rem;
  font-weight: 500;
}
.channel-choice i {
  border: 1px solid;
  border-radius: 50%;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  font-style: normal;
  display: grid;
}
.channel-choice.selected {
  background: var(--green-soft);
  color: var(--green);
  border-color: #16735a47;
  box-shadow: 0 8px 20px #16735a12;
}
.upload-panel {
  background: var(--sky);
  border: 1px dashed #174c9a40;
  border-radius: 1rem;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  display: flex;
}
.upload-panel div {
  flex-direction: column;
  gap: 0.25rem;
  display: flex;
}
.upload-panel strong {
  color: var(--navy);
  font-size: 0.78rem;
}
.upload-panel span {
  color: var(--muted);
  font-size: 0.68rem;
}
.submit-button {
  justify-content: space-between;
  align-self: flex-end;
  align-items: center;
  gap: 1rem;
  min-width: 12rem;
  margin-top: 0.5rem;
  display: flex;
}
.link-help {
  color: var(--muted);
  margin: -0.25rem 0 0;
  font-size: 0.7rem;
  line-height: 1.55;
}
.form-error {
  background: var(--red-soft);
  color: var(--red);
  border: 1px solid #a43e4333;
  border-radius: 0.85rem;
  padding: 0.85rem 1rem;
  font-size: 0.76rem;
  line-height: 1.5;
}
.success-card {
  text-align: center;
  border-radius: 1.8rem;
  max-width: 700px;
  margin: 1rem auto;
  padding: clamp(3rem, 8vw, 6rem);
}
.success-icon {
  background: var(--green-soft);
  width: 4.2rem;
  height: 4.2rem;
  color: var(--green);
  border-radius: 50%;
  place-items: center;
  margin: 0 auto 1.2rem;
  font-size: 1.5rem;
  display: grid;
}
.success-card h1 {
  font-size: 2.6rem;
}
.success-card > p:not(.eyebrow) {
  color: var(--muted);
  max-width: 31rem;
  margin: 1rem auto 1.8rem;
  line-height: 1.7;
}
.success-card > p strong {
  color: var(--navy);
}
.auth-wrap {
  place-items: center;
  min-height: 58vh;
  display: grid;
}
.auth-card {
  text-align: center;
  border-radius: 1.8rem;
  width: min(580px, 100%);
  padding: clamp(2rem, 6vw, 4rem);
}
.auth-card h1 {
  font-size: clamp(2rem, 5vw, 3rem);
}
.auth-card > p:not(.eyebrow):not(.form-error) {
  max-width: 28rem;
  color: var(--muted);
  margin: 1rem auto 1.7rem;
  font-size: 0.85rem;
  line-height: 1.7;
}
.auth-icon {
  background: linear-gradient(135deg, var(--navy-dark), var(--royal));
  color: #fff;
  letter-spacing: 0.08em;
  border-radius: 1.2rem;
  place-items: center;
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1.3rem;
  font-size: 0.8rem;
  font-weight: 600;
  display: grid;
  box-shadow: 0 14px 30px #0a2d6833;
}
.google-button {
  justify-content: space-between;
  align-items: center;
  width: min(20rem, 100%);
  margin: 0 auto;
  display: flex;
}
.public-form-link {
  color: var(--royal);
  margin-top: 1.15rem;
  font-size: 0.72rem;
  text-decoration: none;
  display: inline-block;
}
.public-form-link:hover {
  text-decoration: underline;
}
.modal-backdrop {
  z-index: 100;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  background: #0516367a;
  justify-content: flex-end;
  animation: 0.16s ease-out fade-in;
  display: flex;
  position: fixed;
  inset: 0;
}
.request-drawer {
  background: #f9fbff;
  width: min(500px, 94vw);
  height: 100%;
  padding: 1.5rem clamp(1.4rem, 5vw, 2.5rem) 3rem;
  animation: 0.22s ease-out slide-in;
  overflow-y: auto;
  box-shadow: -24px 0 70px #05163638;
}
.drawer-topline {
  color: var(--muted);
  letter-spacing: 0.1em;
  justify-content: space-between;
  align-items: center;
  font-size: 0.67rem;
  display: flex;
}
.close-button {
  border: 1px solid var(--line);
  color: var(--navy);
  cursor: pointer;
  background: #fff;
  border-radius: 50%;
  width: 2.5rem;
  height: 2.5rem;
  font-size: 1.25rem;
}
.request-drawer > .ministry-label {
  margin-top: 2.4rem;
  display: block;
}
.request-drawer h2 {
  color: var(--navy-dark);
  letter-spacing: -0.035em;
  margin: 0.45rem 0 1rem;
  font-size: 1.8rem;
  line-height: 1.15;
}
.drawer-summary {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.75;
}
.request-meta {
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem;
  margin: 1.5rem 0;
  display: grid;
}
.request-meta div {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 0.9rem;
  padding: 0.85rem;
}
.request-meta dt {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.61rem;
}
.request-meta dd {
  color: var(--navy);
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  font-weight: 500;
}
.drawer-record-actions {
  border-bottom: 1px solid var(--line);
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-bottom: 1.3rem;
  display: flex;
}
.drawer-delete {
  color: var(--red);
  cursor: pointer;
  background: 0 0;
  border: 0;
  padding: 0.72rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 550;
}
.drawer-edit-form > .ministry-label {
  margin-top: 2.4rem;
  display: block;
}
.drawer-edit-form h2 {
  margin-bottom: 1.5rem;
}
.drawer-edit-form label {
  color: var(--navy-dark);
  flex-direction: column;
  gap: 0.42rem;
  margin-bottom: 1rem;
  font-size: 0.69rem;
  font-weight: 550;
  display: flex;
}
.drawer-edit-form input,
.drawer-edit-form select,
.drawer-edit-form textarea {
  width: 100%;
  color: var(--ink);
  background: #fff;
  border: 1px solid #0a2d6821;
  border-radius: 0.8rem;
  outline: none;
  padding: 0.82rem 0.9rem;
  font-size: 0.78rem;
  line-height: 1.5;
}
.drawer-edit-form textarea {
  resize: vertical;
}
.drawer-edit-form input:focus,
.drawer-edit-form select:focus,
.drawer-edit-form textarea:focus {
  border-color: #174c9a80;
  box-shadow: 0 0 0 4px #174c9a14;
}
.drawer-form-actions {
  justify-content: flex-end;
  gap: 0.6rem;
  padding-top: 0.6rem;
  display: flex;
}
.edit-channel-grid {
  border: 1px solid var(--line);
  border-radius: 0.9rem;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin: 1rem 0;
  padding: 0.8rem;
  display: grid;
}
.edit-channel-grid legend {
  color: var(--navy);
  padding: 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 600;
}
.edit-channel-grid label {
  color: var(--muted);
  flex-direction: row;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0.45rem;
  font-weight: 500;
}
.edit-channel-grid input {
  width: auto;
  margin: 0;
}
.website-listing-fields {
  border: 1px solid var(--line);
  border-radius: 0.9rem;
  margin: 1.2rem 0;
  padding: 1rem;
}
.website-listing-fields legend {
  color: var(--navy);
  padding: 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 650;
}
.website-listing-fields .link-help {
  margin: 0 0 1rem;
  max-width: 36rem;
}
.website-listing-fields > label {
  display: flex;
  flex-direction: column;
  gap: 0.42rem;
  margin: 0 0 1rem;
}
.website-listing-fields .form-grid {
  gap: 0.9rem;
  margin: 0 0 1rem;
}
.website-listing-fields .form-grid label {
  margin: 0;
}
.website-workspace-note {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 1.2rem 0;
  padding: 1rem 1.15rem;
}
.website-workspace-note strong {
  color: var(--navy);
  font-size: 0.82rem;
}
.website-workspace-note span {
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.55;
}
.website-event-list {
  overflow: hidden;
}
.website-event-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.2rem;
  padding: 1.1rem 1.2rem;
  border-bottom: 1px solid var(--line);
}
.website-event-row:last-child {
  border-bottom: 0;
}
.website-event-copy {
  min-width: 0;
}
.website-event-copy strong,
.website-event-copy span,
.website-event-copy p {
  display: block;
}
.website-event-copy strong {
  color: var(--navy-dark);
  font-size: 0.9rem;
}
.website-event-copy span {
  color: var(--royal);
  margin-top: 0.2rem;
  font-size: 0.72rem;
  font-weight: 600;
}
.website-event-copy p {
  color: var(--muted);
  max-width: 50rem;
  margin: 0.38rem 0 0;
  font-size: 0.74rem;
  line-height: 1.5;
}
.website-event-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.55rem;
  display: flex;
}
.website-event-actions a {
  color: var(--royal);
  font-size: 0.72rem;
  font-weight: 600;
  text-decoration: none;
}
.website-event-actions a:hover {
  text-decoration: underline;
}
.drawer-link {
  margin: -0.45rem 0 1.2rem;
}
.drawer-link a {
  color: var(--royal);
  font-size: 0.72rem;
  font-weight: 550;
  text-decoration: none;
}
.drawer-link a:hover {
  text-decoration: underline;
}
.drawer-notes {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 0.9rem;
  margin: 0 0 1.2rem;
  padding: 0.85rem 1rem;
}
.drawer-notes strong {
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.66rem;
}
.drawer-notes p {
  color: var(--muted);
  white-space: pre-wrap;
  margin: 0.4rem 0 0;
  font-size: 0.75rem;
  line-height: 1.6;
}
.drawer-checklist {
  margin-top: 1.8rem;
}
.drawer-section-heading {
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 0.6rem;
  display: flex;
}
.drawer-section-heading div {
  flex-direction: column;
  display: flex;
}
.drawer-section-heading span {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.62rem;
}
.drawer-section-heading strong {
  color: var(--navy);
  margin-top: 0.16rem;
  font-size: 0.9rem;
}
.drawer-section-heading small {
  color: var(--muted);
  font-size: 0.62rem;
}
.drawer-check {
  border: 1px solid var(--line);
  width: 100%;
  min-height: 3.8rem;
  color: var(--ink);
  background: #fff;
  border-radius: 0.85rem;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
  padding: 0.8rem 1rem;
  display: flex;
}
.drawer-check span {
  font-size: 0.77rem;
}
.drawer-check > div {
  gap: 0.4rem;
  display: flex;
}
.drawer-check button {
  color: inherit;
  cursor: pointer;
  background: #ffffff9e;
  border: 1px solid;
  border-radius: 999px;
  padding: 0.4rem 0.55rem;
  font-size: 0.6rem;
  font-weight: 600;
}
.drawer-check .drawer-skip {
  color: var(--orange);
}
.drawer-check.done {
  background: var(--green-soft);
  color: var(--green);
  border-color: #16735a2e;
}
.drawer-check.skipped {
  background: var(--orange-soft);
  color: var(--orange);
  border-color: #b75b122e;
}
.drawer-check.pending {
  background: var(--yellow-soft);
  color: var(--yellow);
  border-color: #a76b0526;
}
.drawer-check.urgent {
  background: var(--red-soft);
  color: var(--red);
  border-color: #a43e4326;
}
.history-block {
  border-top: 1px solid var(--line);
  margin-top: 2rem;
  padding-top: 1.25rem;
}
.history-block > span {
  color: var(--navy);
  font-size: 0.72rem;
  font-weight: 600;
}
.history-block p {
  color: var(--muted);
  align-items: center;
  gap: 0.7rem;
  margin: 0.8rem 0;
  font-size: 0.68rem;
  display: flex;
}
.history-block i {
  background: #94b5df;
  border-radius: 50%;
  width: 0.45rem;
  height: 0.45rem;
}
.history-block p > span {
  flex-direction: column;
  gap: 0.12rem;
  display: flex;
}
.history-block p strong {
  color: var(--ink);
  font-weight: 500;
}
.history-block p small {
  color: var(--muted);
  font-size: 0.6rem;
}
.portal-footer {
  border-top: 1px solid var(--line);
  width: min(1180px, 100% - 2.5rem);
  min-height: 5rem;
  color: var(--muted);
  z-index: 1;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
  font-size: 0.67rem;
  display: flex;
  position: relative;
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
}
@keyframes slide-in {
  0% {
    transform: translate(100%);
  }
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@media (width<=980px) {
  .legend,
  .board-header {
    display: none;
  }
  .board {
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: 0 0;
    border: 0;
    overflow: visible;
  }
  .board-body {
    flex-direction: column;
    gap: 0.85rem;
    display: flex;
  }
  .board-row {
    border: 1px solid #ffffffe6;
    border-radius: 1.25rem;
    padding: 0;
    display: block;
    overflow: hidden;
    box-shadow: 0 12px 35px #0d306014;
  }
  .communication-cell {
    width: 100%;
    padding: 1.1rem 1.2rem 0.85rem;
  }
  .view-request {
    opacity: 1;
    transform: none;
  }
  .placement-grid {
    border-top: 1px solid var(--line);
    grid-template-columns: repeat(3, 1fr);
  }
  .placement-control {
    border-left: 0;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    min-height: 5.5rem;
  }
  .placement-control:nth-child(3n) {
    border-right: 0;
  }
  .placement-control:last-child {
    border-right: 0;
    border-bottom: 0;
  }
  .placement-mobile-label {
    color: currentColor;
    opacity: 0.72;
    font-size: 0.56rem;
    display: block;
  }
  .state-icon {
    width: 1.35rem;
    height: 1.35rem;
    font-size: 0.65rem;
  }
  .placement-status-button span:not(.placement-mobile-label) {
    font-size: 0.55rem;
  }
  .management-table-header {
    display: none;
  }
  .management-table {
    flex-direction: column;
    gap: 0.7rem;
    padding: 0.8rem;
    display: flex;
  }
  .management-row {
    border: 1px solid var(--line);
    border-radius: 1rem;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    grid-template-areas:
      "title status"
      "event event"
      "window channels"
      "actions actions";
    row-gap: 0.8rem;
    min-height: 0;
    padding: 1rem;
  }
  .management-title {
    grid-area: title;
    padding: 0;
  }
  .management-event {
    grid-area: event;
  }
  .management-window {
    grid-area: window;
  }
  .channel-pills {
    grid-area: channels;
  }
  .management-status {
    grid-area: status;
    justify-self: end;
  }
  .management-actions {
    border-top: 1px solid var(--line);
    grid-area: actions;
    padding-top: 0.8rem;
  }
  .channel-output-wrap {
    grid-template-columns: 1fr;
  }
  .channel-output-tabs {
    flex-direction: row;
    padding-bottom: 0.35rem;
    position: static;
    overflow-x: auto;
  }
  .channel-output-tabs button {
    flex: 0 0 9.5rem;
  }
}
@media (width<=740px) {
  .brand-header {
    padding: 1rem 0.75rem 0.85rem;
  }
  .portal-title {
    margin-top: 0.6rem;
    font-size: 0.9rem;
  }
  .nav-inner {
    width: 100%;
    min-height: 3.8rem;
    padding: 0 0.35rem;
    overflow-x: auto;
  }
  .nav-link {
    white-space: nowrap;
    padding: 0 0.72rem;
    font-size: 0.72rem;
  }
  .nav-link:after {
    left: 0.72rem;
    right: 0.72rem;
  }
  .staff-chip {
    display: none;
  }
  .data-alert {
    width: calc(100% - 1.2rem);
    margin-bottom: -1.2rem;
  }
  .content-wrap {
    width: min(100% - 1.2rem, 1180px);
    padding-top: 2.5rem;
  }
  .hero-panel {
    align-items: flex-end;
  }
  .progress-orb {
    width: 5.2rem;
    height: 5.2rem;
    padding: 5px;
  }
  .progress-orb strong {
    font-size: 1.15rem;
  }
  .progress-orb span {
    font-size: 0.58rem;
  }
  h1 {
    font-size: 2.15rem;
  }
  .hero-copy {
    font-size: 0.87rem;
  }
  .week-toolbar {
    flex-wrap: wrap;
    padding: 0.75rem;
  }
  .week-label {
    flex: 1;
    min-width: 9rem;
  }
  .week-label strong {
    font-size: 0.82rem;
  }
  .toolbar-spacer {
    display: none;
  }
  .pending-toggle {
    border-top: 1px solid var(--line);
    justify-content: flex-end;
    width: 100%;
    padding-top: 0.4rem;
  }
  .board-mode-switch {
    width: 100%;
  }
  .board-mode-switch button {
    flex: 1;
    min-width: 0;
  }
  .channel-run-sheet-heading {
    flex-direction: column;
    align-items: flex-start;
  }
  .channel-output-list {
    padding: 0.15rem 1rem;
  }
  .channel-output-title-row {
    flex-direction: column;
    gap: 0.55rem;
  }
  .page-heading-row {
    flex-direction: column;
    align-items: flex-start;
  }
  .manage-heading {
    align-items: flex-start;
  }
  .management-summary,
  .management-toolbar {
    grid-template-columns: 1fr 1fr;
  }
  .search-field {
    grid-column: 1/-1;
  }
  .clear-filters {
    grid-column: 1/-1;
    justify-self: start;
    height: auto;
    padding: 0.25rem 0;
  }
  .timeline-card {
    overflow-x: auto;
  }
  .timeline-header,
  .timeline-row {
    min-width: 760px;
  }
  .timeline-caption {
    justify-content: flex-start;
    padding-bottom: 0.5rem;
    overflow-x: auto;
  }
  .form-section {
    grid-template-columns: 1fr;
  }
  .section-number {
    width: 2rem;
    height: 2rem;
  }
  .form-grid.two-column {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .channel-choices {
    grid-template-columns: 1fr 1fr;
  }
  .upload-panel {
    flex-direction: column;
    align-items: flex-start;
  }
  .submit-button {
    align-self: stretch;
    width: 100%;
  }
  .portal-footer {
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 0.3rem;
    width: calc(100% - 1.2rem);
  }
  .edit-channel-grid {
    grid-template-columns: 1fr;
  }
  .website-listing-fields .form-grid.two-column {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .website-event-row {
    grid-template-columns: 1fr;
  }
  .website-event-actions {
    justify-content: flex-start;
  }
}
@media (width<=430px) {
  .hero-panel {
    gap: 0.75rem;
  }
  .progress-orb {
    width: 4.7rem;
    height: 4.7rem;
  }
  .placement-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .placement-control:nth-child(3n) {
    border-right: 1px solid var(--line);
  }
  .placement-control:nth-child(2n) {
    border-right: 0;
  }
  .placement-control:nth-child(n + 4) {
    border-bottom: 1px solid var(--line);
  }
  .placement-control:last-child {
    border-right: 0;
    border-bottom: 0;
  }
  .channel-choices,
  .request-meta {
    grid-template-columns: 1fr;
  }
  .management-summary {
    gap: 0.55rem;
  }
  .summary-card {
    min-height: 5.2rem;
    padding: 0.8rem;
  }
  .management-tabs {
    padding-left: 0.55rem;
    padding-right: 0.55rem;
  }
  .management-toolbar {
    grid-template-columns: 1fr;
    padding: 0.9rem;
  }
  .search-field,
  .filter-field,
  .clear-filters {
    grid-column: 1;
  }
  .management-row {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "event" "status" "window" "channels" "actions";
  }
  .management-status {
    justify-self: start;
  }
  .board-mode-switch button small {
    display: none;
  }
  .channel-output-card {
    grid-template-columns: 1.7rem minmax(0, 1fr);
    gap: 0.6rem;
  }
  .channel-output-number {
    width: 1.6rem;
    height: 1.6rem;
  }
  .channel-output-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .channel-output-actions button {
    width: 100%;
  }
}
.poster-page-heading {
  align-items: end;
}
.poster-heading-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.65rem;
}
.poster-toolbar {
  display: flex;
  align-items: end;
  gap: 1rem;
  padding: 1rem 1.15rem;
  margin-bottom: 1.25rem;
  border-radius: 1.2rem;
}
.poster-toolbar label {
  min-width: 12rem;
}
.poster-toolbar p {
  margin: 0 0 0 auto;
  color: var(--muted);
  font-size: 0.78rem;
}
.poster-toolbar p strong {
  color: var(--navy);
  font-size: 1.25rem;
  margin-right: 0.3rem;
}
.poster-event-manager {
  margin: 0 0 1.25rem;
  padding: 1rem 1.15rem;
  border-radius: 1.2rem;
}
.poster-event-manager-heading,
.poster-manager-row,
.poster-manager-actions {
  display: flex;
  align-items: center;
}
.poster-event-manager-heading {
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.8rem;
}
.poster-event-manager-heading > div {
  display: grid;
  gap: 0.18rem;
}
.poster-event-manager-heading strong {
  color: var(--navy-dark);
  font-size: 0.8rem;
}
.poster-event-manager-heading span,
.poster-event-manager-heading small,
.poster-manager-empty {
  color: var(--muted);
  font-size: 0.65rem;
}
.poster-event-manager-list {
  border-top: 1px solid var(--line);
}
.poster-manager-row {
  grid-template-columns: 7.3rem minmax(0, 1fr) auto;
  gap: 0.8rem;
  padding: 0.72rem 0;
  border-bottom: 1px solid var(--line);
  display: grid;
}
.poster-manager-row.excluded {
  opacity: 0.7;
}
.poster-toggle {
  color: var(--navy);
  background: #fff;
  border: 1px solid #234a8e3d;
  border-radius: 999px;
  cursor: pointer;
  padding: 0.48rem 0.7rem;
  font-size: 0.62rem;
  font-weight: 600;
}
.poster-toggle.included {
  color: #fff;
  background: #234a8e;
  border-color: #234a8e;
}
.poster-manager-copy {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
}
.poster-manager-copy strong {
  color: var(--navy-dark);
  font-size: 0.74rem;
}
.poster-manager-copy span {
  color: #234a8e;
  font-size: 0.65rem;
  font-weight: 600;
}
.poster-manager-actions {
  justify-content: flex-end;
  gap: 0.55rem;
}
.poster-manager-actions a {
  color: #234a8e;
  font-size: 0.62rem;
  font-weight: 600;
}
.calendar-publish-status {
  color: var(--yellow);
  background: var(--yellow-soft);
  border-radius: 999px;
  padding: 0.35rem 0.55rem;
  font-size: 0.58rem;
  font-weight: 650;
  white-space: nowrap;
}
.calendar-publish-status.published {
  color: var(--green);
  background: var(--green-soft);
}
.calendar-publish-status.error {
  color: var(--red);
  background: var(--red-soft);
}
.calendar-manager-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.7rem;
}
.calendar-publish-choice {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.75rem;
  color: var(--navy-dark);
  background: var(--sky);
  border: 1px solid #234a8e24;
  border-radius: 0.9rem;
  padding: 0.9rem 1rem;
}
.calendar-publish-choice input {
  width: auto;
  margin-top: 0.15rem;
}
.calendar-publish-choice span {
  display: grid;
  gap: 0.18rem;
}
.calendar-publish-choice strong {
  font-size: 0.78rem;
}
.calendar-publish-choice small {
  color: var(--muted);
  font-size: 0.65rem;
  font-weight: 400;
  line-height: 1.45;
}
.poster-inclusion-edit {
  flex-direction: row !important;
  align-items: center;
}
.poster-inclusion-edit input {
  width: auto;
}
@media (max-width: 760px) {
  .poster-manager-row {
    grid-template-columns: 1fr;
  }
  .poster-manager-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .calendar-manager-heading-actions {
    align-items: flex-end;
    flex-direction: column;
  }
}
.poster-limit-note {
  color: var(--orange);
  background: var(--orange-soft);
  border: 1px solid #b75b1226;
  border-radius: 0.8rem;
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  font-size: 0.75rem;
}
.poster-sheet {
  page: poster;
  aspect-ratio: 11 / 17;
  width: min(100%, 52rem);
  min-height: 72rem;
  margin: 0 auto;
  color: #102546;
  background: #fffdfa;
  border: 1px solid #0a2d6824;
  box-shadow: 0 25px 70px #061f4f1c;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
@page poster {
  size: 11in 17in;
  margin: 0.42in;
}
.poster-header {
  color: #fff;
  background: #234a8e;
  padding: 2.4rem 2.5rem 2rem;
}
.poster-header p {
  letter-spacing: 0.18em;
  margin: 0;
  font-size: 0.68rem;
  font-weight: 600;
}
.poster-header h2 {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: -0.035em;
  margin: 0.45rem 0 0.35rem;
  font-size: 2.35rem;
  line-height: 1.05;
  font-weight: 500;
}
.poster-header span {
  color: #ffffffc7;
  font-size: 0.82rem;
}
.poster-events {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 0;
  flex: 1;
  padding: 1rem 1.5rem 0;
}
.poster-event {
  min-height: 8.8rem;
  border-bottom: 1px solid #0a2d681c;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 4.4rem;
  gap: 0.75rem;
  align-items: center;
  padding: 1rem;
}
.poster-event:nth-child(odd) {
  border-right: 1px solid #0a2d681c;
}
.poster-event-copy > span {
  color: #174c9a;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  font-size: 0.54rem;
  font-weight: 600;
}
.poster-event h3 {
  color: #061f4f;
  margin: 0.2rem 0 0.22rem;
  font-size: 0.96rem;
  line-height: 1.16;
  font-weight: 600;
}
.poster-event-copy strong {
  color: #234a8e;
  display: block;
  margin-top: 0.28rem;
  font-size: 0.78rem;
  line-height: 1.22;
  font-weight: 700;
}
.poster-event-copy p {
  color: #516078;
  margin: 0.35rem 0 0;
  font-size: 0.58rem;
  line-height: 1.4;
}
.poster-qr {
  text-align: center;
}
.poster-qr img {
  width: 4.15rem;
  height: 4.15rem;
  margin: 0 auto;
  image-rendering: pixelated;
}
.poster-qr span {
  color: #516078;
  display: block;
  margin-top: 0.28rem;
  font-size: 0.44rem;
  line-height: 1.2;
  font-weight: 600;
}
.poster-footer {
  color: #fff;
  background: #234a8e;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.9rem 2.4rem;
  font-size: 0.67rem;
}
.poster-empty {
  text-align: center;
  flex: 1;
  display: grid;
  place-content: center;
  padding: 3rem;
}
.poster-empty h3 {
  color: var(--navy);
  margin: 0;
  font-size: 1.35rem;
}
.poster-empty p {
  color: var(--muted);
}
.calendar-add-wrap {
  min-height: 34rem;
  display: grid;
  place-items: start center;
}
.calendar-add-card {
  width: min(42rem, 100%);
  text-align: center;
  border-radius: 1.6rem;
  padding: clamp(2rem, 6vw, 4rem);
}
.calendar-add-icon {
  width: 4rem;
  height: 4rem;
  color: #fff;
  background: linear-gradient(135deg, var(--navy), var(--green));
  border-radius: 1.15rem;
  display: grid;
  place-items: center;
  margin: 0 auto 1.4rem;
  font-size: 2rem;
}
.calendar-add-card h1 {
  font-size: clamp(1.8rem, 5vw, 2.8rem);
}
.calendar-add-when {
  color: var(--green);
  margin: 1rem 0 0;
  font-weight: 600;
}
.calendar-add-summary {
  color: var(--muted);
  margin: 1.2rem auto 0;
  max-width: 34rem;
  line-height: 1.65;
}
.calendar-add-actions {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.7rem;
}
.calendar-event-link {
  color: var(--royal);
  display: inline-block;
  margin-top: 1.3rem;
  font-size: 0.82rem;
  font-weight: 600;
}
.calendar-add-location {
  color: var(--muted);
  border-top: 1px solid var(--line);
  margin: 2rem 0 0;
  padding-top: 1.2rem;
  font-size: 0.72rem;
}
@media (width<=760px) {
  .poster-page-heading {
    align-items: stretch;
    flex-direction: column;
  }
  .poster-heading-actions {
    justify-content: flex-start;
  }
  .poster-toolbar,
  .calendar-add-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .poster-toolbar p {
    margin: 0;
  }
  .poster-sheet {
    min-height: auto;
  }
  .poster-events {
    grid-template-columns: 1fr;
  }
  .poster-event:nth-child(odd) {
    border-right: 0;
  }
}
@media print {
  .brand-header,
  .public-accent,
  .portal-nav,
  .hero-panel,
  .week-toolbar,
  .board-mode-switch,
  .channel-output-tabs,
  .board-note,
  .portal-footer,
  .print-button,
  .channel-output-actions,
  .ambient {
    display: none !important;
  }
  html,
  body,
  .site-shell {
    background: #fff !important;
  }
  .content-wrap {
    width: 100%;
    padding: 0;
  }
  .channel-output-wrap {
    display: block;
  }
  .channel-run-sheet {
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border: 0;
  }
  .channel-run-sheet-heading {
    background: #fff;
    padding: 0 0 1rem;
  }
  .channel-output-list {
    padding: 0;
  }
  .channel-output-card {
    break-inside: avoid;
  }
  body:has(.poster-sheet) * {
    visibility: hidden;
  }
  body:has(.poster-sheet) .poster-sheet,
  body:has(.poster-sheet) .poster-sheet * {
    visibility: visible;
  }
  body:has(.poster-sheet) .poster-sheet {
    position: absolute;
    inset: 0;
    width: 10.16in;
    height: 16.16in;
    min-height: 0;
    margin: 0;
    border: 0;
    box-shadow: none;
  }
  body:has(.poster-sheet) .poster-header {
    padding: 0.42in 0.45in 0.34in;
  }
  body:has(.poster-sheet) .poster-events {
    padding: 0.12in 0.2in 0;
  }
  body:has(.poster-sheet) .poster-event {
    min-height: 1.78in;
    padding: 0.16in;
    break-inside: avoid;
  }
  body:has(.poster-sheet) .poster-footer {
    padding: 0.17in 0.45in;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  :before,
  :after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
