@import url('/style.css') layer(legacy);
@import url('/candidate-planning.css') layer(legacy);
:root {
  --bg:#eef0f4;
  --card:#fff;
  --ink:#202630;
  --ink-soft:#657080;
  --line:#dce1e9;
  --accent:#3854d7;
  --accent-strong:#283fb0;
  --shadow:0 8px 28px #27395508;
  --cp-ink:var(--ink);
  --cp-muted:var(--ink-soft);
  --cp-line:var(--line);
  --cp-accent:var(--accent);
  --cp-accent-dark:var(--accent-strong);
  color-scheme:light
}

html {
  scroll-behavior:auto
}

body,body:not(.gate-active) {
  margin:0;
  min-height:100vh;
  background:var(--bg);
  color:var(--ink);
  font-family:"Microsoft YaHei UI","PingFang SC","DengXian",sans-serif;
  font-size:14px;
  line-height:1.6
}

body.gate-active {
  overflow:auto
}

* {
  box-sizing:border-box
}

button,input,select,textarea {
  font:inherit
}

button,a,summary,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}

button {
  cursor:pointer
}

button:disabled {
  cursor:not-allowed;
  opacity:.45
}

[hidden] {
  display:none!important
}

a {
  color:var(--accent)
}

h1,h2,h3,h4 {
  font-family:inherit;
  color:var(--ink);
  letter-spacing:-.035em
}

h1 {
  font-weight:650
}

h2 {
  font-weight:650;
  font-size:20px
}

h3 {
  font-size:16px
}

p {
  max-width:78ch
}

fieldset {
  min-width:0
}

label {
  color:var(--ink-soft);
  font-size:13px
}

input,select,textarea {
  border:1px solid var(--line);
  border-radius:8px;
  min-height:40px;
  padding:9px 11px;
  background:#fff;
  color:var(--ink);
  max-width:100%
}

input[type=checkbox],input[type=radio] {
  accent-color:var(--accent);
  min-height:0
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible {
  outline:3px solid #758be9;
  outline-offset:3px
}

button,.btn,.candidate-panel button {
  transition:background-color .14s,border-color .14s
}

.btn,.candidate-panel button {
  min-height:40px;
  border-radius:8px;
  border:1px solid var(--line);
  padding:9px 14px;
  background:white;
  color:var(--ink);
  box-shadow:none;
  line-height:1.4
}

.btn:hover:not(:disabled),.candidate-panel button:hover:not(:disabled) {
  background:#f4f6fa;
  border-color:#bcc7df;
  transform:none
}

.btn.primary,.candidate-panel .candidate-primary {
  background:var(--accent);
  border-color:var(--accent);
  color:white;
  font-weight:600
}

.btn.primary:hover:not(:disabled),.candidate-panel .candidate-primary:hover:not(:disabled) {
  background:var(--accent-strong);
  border-color:var(--accent-strong)
}

.btn.ghost {
  background:transparent
}

.btn.danger {
  color:#a54751;
  background:#fff;
  border-color:#e6cbd0
}

.hint,.candidate-muted {
  font-size:12px;
  color:var(--ink-soft);
  line-height:1.7
}

.text-button {
  border:0;
  background:none;
  color:var(--ink-soft);
  padding:5px 0;
  font-size:12px;
  text-decoration:underline;
  text-underline-offset:3px
}

.sr-only,.skip-link:not(:focus) {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0)
}

.skip-link:focus {
  position:fixed;
  top:12px;
  left:12px;
  padding:12px;
  background:#fff;
  z-index:100
}

.candidate-badge {
  display:inline-block;
  color:#727d8c;
  border:1px solid #cfd5df;
  border-radius:4px;
  font-size:10px;
  line-height:1;
  padding:4px 5px;
  vertical-align:middle;
  white-space:nowrap
}

/* The entry is a campaign display with a focused, quiet form. */
.adventure-gate {
  display:none;
  position:relative;
  inset:auto;
  z-index:1;
  padding:0;
  place-items:stretch;
  min-height:100svh;
  grid-template-columns:minmax(0,1.05fr) minmax(440px,.95fr)
}

body.gate-active .adventure-gate {
  display:grid
}

.gate-art {
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--gate-bg,#233d39);
  min-height:100svh;
  padding:36px 44px;
  color:#edf1ef;
  overflow:hidden
}

.site-brand {
  display:flex;
  align-items:center;
  gap:11px;
  color:inherit;
  text-decoration:none;
  font-size:24px;
  font-weight:700;
  line-height:1;
  letter-spacing:-.05em
}

.brand-symbol {
  font-size:37px;
  line-height:24px;
  font-family:Georgia,serif;
  font-weight:400
}

.brand-caption {
  font-size:11px;
  font-weight:400;
  margin-left:auto;
  letter-spacing:0;
  opacity:.7
}

.gate-campaign-stage {
  flex:1;
  min-height:400px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative
}

.campaign-art {
  position:relative;
  overflow:hidden;
  background:var(--campaign-color);
  color:var(--campaign-light);
  isolation:isolate
}

.art-orbit {
  position:absolute;
  width:92%;
  aspect-ratio:1;
  border:1px solid currentColor;
  border-radius:50%;
  opacity:.16;
  left:4%;
  top:50%;
  transform:translateY(-50%);
  z-index:-1
}

.orbit-second {
  width:125%;
  left:-12.5%;
  opacity:.07
}

.campaign-logo {
  display:inline-flex;
  position:relative;
  align-items:center;
  justify-content:center;
  min-width:0
}

.campaign-logo img {
  display:block;
  max-width:100%;
  max-height:100%;
  object-fit:contain
}

.letter-mark {
  font-weight:600;
  font-size:20px
}

.large-logo {
  width:82%;
  max-width:510px;
  height:280px
}

.large-logo img {
  width:100%;
  height:100%;
  object-fit:contain
}

.campaign-logo[data-campaign=bob].large-logo {
  height:340px;
  max-width:380px
}

.campaign-logo[data-campaign=sog].large-logo {
  max-width:440px
}

.campaign-logo[data-campaign=hld].large-logo {
  height:220px;
  flex-direction:column;
  gap:13px
}

.campaign-logo[data-campaign=hld] img {
  height:auto
}

.hld-lettering {
  font-family:Bahnschrift,"Arial Narrow",Arial,sans-serif;
  font-size:15px;
  letter-spacing:.16em;
  color:#e4ece8;
  white-space:nowrap
}

.cotct-lettering {
  position:absolute;
  left:19%;
  top:15%;
  width:62%;
  height:30%!important;
  object-fit:contain;
  font-family:Georgia,serif;
  color:#f6e3b5;
  font-weight:bold;
  font-size:22px;
  text-align:center;
  line-height:1.1
}

.gate-stage-art {
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:430px;
  width:calc(100% + 88px);
  margin-left:-44px;
  background:transparent
}

.gate-stage-art:before {
  content:"";
  position:absolute;
  inset:0;
  background:var(--campaign-color);
  z-index:-2;
  opacity:.55
}

.gate-stage-caption {
  padding-bottom:12px;
  position:relative
}

.gate-stage-caption>span {
  font-family:Bahnschrift,Arial,sans-serif;
  font-size:13px;
  color:#a7b6b9
}

.gate-stage-caption h2 {
  font-size:32px;
  line-height:1.3;
  margin:8px 0 0;
  color:#f2f4f0;
  font-weight:500
}

.gate-art-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-top:30px;
  border-top:1px solid #ffffff21;
  color:#aebbc0;
  font-size:11px
}

.gate-campaign-picker {
  display:flex;
  gap:4px
}

.gate-campaign-picker button {
  width:36px;
  height:36px;
  min-height:0;
  padding:0;
  color:#b9c4c7;
  background:transparent;
  border:1px solid #ffffff28;
  border-radius:50%;
  font:12px Bahnschrift,Arial
}

.gate-carousel-controls {
  display:flex;
  align-items:center;
  gap:12px
}

.gate-carousel-toggle {
  min-width:44px;
  min-height:36px;
  padding:0 4px;
  color:#dae1dd;
  border:0;
  border-radius:4px;
  background:transparent;
  font-size:11px
}

.gate-carousel-toggle:hover {
  background:#ffffff12
}

.gate-campaign-picker button[aria-pressed=true] {
  background:#dae1dd;
  color:#25332f;
  border-color:#dae1dd
}

.gate-intro-video {
  z-index:4;
  pointer-events:none;
  opacity:0;
  display:none
}

.adventure-gate:not(.video-fadeout) .gate-intro-video {
  display:block;
  opacity:1;
  filter:none
}

.gate-login {
  display:flex;
  flex-direction:column;
  padding:34px 8%;
  background:#f9fafc;
  min-width:0
}

.gate-topline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:var(--ink-soft);
  font-size:11px
}

.gate-panel {
  width:100%;
  max-width:440px;
  margin:auto;
  padding:50px 0 28px;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:none;
  backdrop-filter:none;
  color:var(--ink);
  max-height:none;
  overflow:visible
}

.gate-panel h1 {
  font-family:inherit;
  font-size:clamp(32px,3vw,48px);
  font-weight:600;
  line-height:1.3;
  margin:0 0 18px;
  letter-spacing:-.05em
}

.gate-subtitle {
  font-size:13px;
  color:var(--ink-soft);
  margin-bottom:25px
}

.status,.gate-status {
  font-size:12px;
  border-radius:6px;
  padding:8px 12px;
  line-height:1.5;
  margin:0 0 16px;
  background:#edf1fb;
  border:0;
  border-left:2px solid #a4b3e6;
  box-shadow:none
}

.identity-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:17px
}

.identity-grid>label {
  display:grid;
  gap:6px;
  line-height:1.5;
  font-size:12px;
  font-weight:500;
  color:var(--ink)
}

.identity-grid input,.identity-grid select {
  width:100%;
  min-width:0;
  height:44px;
  border-radius:7px;
  border-color:#d5dce7;
  background:#fff;
  color:var(--ink)
}

.username-login-inline {
  display:block
}

.gate-hint {
  color:var(--ink-soft);
  font-size:11px;
  margin:0
}

.gate-group-select {
  display:none
}

.gate-actions {
  display:grid;
  gap:8px;
  margin:0
}

.gate-actions .btn {
  min-height:44px;
  width:100%
}

#enter-world:disabled {
  display:none
}

.gate-login-footer {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  margin-top:26px;
  padding-top:16px
}

.gate-login-footer .btn {
  font-size:11px;
  border:0;
  padding:0;
  min-height:32px;
  color:var(--ink-soft)
}

.gate-options {
  font-size:12px;
  color:var(--ink-soft)
}

.gate-options summary {
  cursor:pointer
}

.gate-options[open]>label {
  display:grid;
  gap:6px;
  margin:12px 0 8px
}

.gate-media-tools {
  display:flex;
  gap:8px
}

.gate-media-tools .btn {
  font-size:11px;
  padding:6px 8px
}

.week-choice-field {
  border:0;
  margin:0;
  padding:0
}

.week-choice-field legend {
  font-size:12px;
  color:var(--ink-soft);
  padding:0 0 8px
}

.week-choices {
  display:flex;
  gap:5px;
  flex-wrap:wrap
}

.week-choice {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  padding:8px 11px;
  cursor:pointer;
  color:var(--ink-soft);
  min-width:0;
  font-size:11px;
  line-height:1.5
}

.week-choice.is-selected {
  background:#e9edff;
  border-color:#b7c2f1;
  color:#3148b6
}

.week-choice input {
  accent-color:var(--accent);
  width:12px;
  height:12px;
  min-height:0;
  margin:0
}

/* A persistent shell, with one working screen at a time. */
.app-shell {
  display:grid;
  grid-template-columns:210px minmax(0,1fr) 278px;
  gap:0;
  max-width:1800px;
  margin:0 auto;
  min-height:100vh;
  padding:0;
  align-items:start;
  align-content:start
}

body.gate-active .app-shell {
  display:none
}

.workspace-sidebar {
  padding:35px 18px 22px;
  position:sticky;
  top:0;
  display:flex;
  flex-direction:column;
  height:100svh;
  border-right:1px solid var(--line);
  overflow-y:auto
}

.workspace-sidebar .site-brand {
  font-size:23px;
  padding:0 12px 38px
}

.workspace-sidebar .brand-symbol {
  color:var(--accent)
}

#workspace-nav {
  display:flex;
  flex-direction:column;
  gap:4px
}

.nav-link {
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  background:transparent;
  border:0;
  border-radius:8px;
  padding:10px 13px;
  min-height:44px;
  color:#647083;
  font-size:13px;
  text-align:left
}

.nav-link [data-icon] {
  width:18px;
  height:18px;
  display:flex;
  flex:0 0 auto
}

.nav-link svg {
  width:18px;
  height:18px
}

.nav-link:hover {
  background:#e6eaf1
}

.nav-link[aria-current=page] {
  background:#fff;
  color:var(--accent);
  box-shadow:0 2px 4px #1f304909;
  font-weight:600
}

.nav-link[data-nav=rules] {
  margin-bottom:18px
}

.sidebar-campaigns {
  margin-top:28px
}

.sidebar-campaigns h2 {
  font-size:10px;
  color:#86909d;
  margin:0 0 8px 13px;
  letter-spacing:0;
  font-weight:400
}

.sidebar-group {
  display:flex;
  align-items:center;
  gap:9px;
  border:0;
  width:100%;
  background:transparent;
  border-radius:7px;
  color:#5a6677;
  text-align:left;
  padding:6px 10px;
  min-height:39px;
  font-size:11px
}

.sidebar-group>span:last-child {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.sidebar-group:hover,.sidebar-group[aria-pressed=true] {
  background:#e2e7f0;
  color:var(--ink)
}

.all-campaigns {
  padding-left:13px;
  font-size:11px
}

.mini-logo {
  width:32px;
  height:28px;
  flex:0 0 32px
}

.mini-logo .cotct-lettering {
  display:none
}

.sidebar-bottom {
  margin-top:auto;
  padding:30px 10px 0
}

.identity-chip {
  display:flex;
  align-items:center;
  gap:11px;
  font-size:12px
}

.identity-chip>span {
  background:#dce2f3;
  border:1px solid #c7d0e6;
  border-radius:50%;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  font-size:11px;
  color:#405590
}

.identity-chip strong {
  display:block;
  font-weight:500
}

.identity-chip small {
  display:block;
  font-size:10px;
  color:var(--ink-soft)
}

.sidebar-bottom .btn {
  font-size:10px;
  padding:5px 0;
  min-height:28px;
  border:0;
  margin:10px 0 0 44px;
  color:var(--ink-soft)
}

.workspace-main {
  min-width:0;
  padding:36px 32px 20px
}

.workspace-header {
  border:0;
  background:transparent;
  box-shadow:none;
  border-radius:0;
  padding:0;
  margin:0 0 16px
}

.workspace-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:15px;
  margin-bottom:12px
}

.workspace-heading p {
  margin:0 0 5px;
  font-size:11px;
  color:var(--ink-soft)
}

.workspace-heading h1 {
  font-size:32px;
  line-height:1.15;
  margin:0
}

.workspace-heading h1:focus {
  outline:none
}

.workspace-date {
  font-family:Bahnschrift,Arial,sans-serif;
  font-size:14px;
  font-weight:500;
  color:#647086;
  white-space:nowrap
}

.week-export-controls {
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:12px;
  position:relative
}

.workspace-week-field {
  flex:1
}

.workspace-more {
  position:relative
}

.workspace-more summary {
  list-style:none;
  font-weight:bold;
  font-size:17px;
  border:1px solid var(--line);
  border-radius:7px;
  width:36px;
  height:35px;
  display:grid;
  place-items:center;
  cursor:pointer;
  background:#fff
}

.workspace-more[open]>.btn,.workspace-more[open]>.hint {
  position:absolute;
  z-index:10;
  right:0;
  width:240px;
  background:#fff
}

.workspace-more>.hint {
  top:62px;
  padding:12px;
  border:1px solid var(--line);
  box-shadow:var(--shadow)
}

.workspace-status {
  font-size:11px;
  line-height:1.5;
  padding:7px 10px;
  margin:0 0 14px
}

.workspace-section {
  padding:25px;
  background:white;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:14px;
  margin:0 0 18px;
  min-width:0;
  animation:none
}

.workspace-section>p.hint {
  margin-bottom:13px
}

.section-title-wrap {
  margin-bottom:14px;
  gap:12px
}

.section-title-wrap h2 {
  margin:0;
  font-size:18px
}

.metric {
  font-family:Bahnschrift,"Microsoft YaHei UI",sans-serif;
  font-size:12px;
  font-weight:500;
  color:var(--accent);
  background:#eef1ff;
  padding:5px 9px;
  white-space:nowrap;
  border-radius:5px
}

.workspace-footer {
  margin-top:24px;
  padding:14px 0 0;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#8a94a4;
  font-size:11px
}

.workspace-footer .candidate-badge {
  margin-left:6px
}

.workspace-footer .text-button {
  font-size:11px
}

.campaign-inspector {
  position:sticky;
  top:0;
  min-width:0;
  padding:36px 22px 20px 0;
  height:100svh;
  overflow:auto
}

.inspector-stage {
  height:277px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center
}

.inspector-stage .large-logo {
  height:210px;
  width:94%;
  padding:10px
}

.inspector-stage .campaign-logo[data-campaign=hld] {
  height:190px;
  padding:18px
}

.inspector-stage .hld-lettering {
  font-size:9px
}

.inspector-stage .cotct-lettering {
  font-size:12px
}

.inspector-eyebrow {
  display:block;
  font-family:Bahnschrift,Arial,sans-serif;
  font-size:11px;
  color:var(--ink-soft);
  margin-top:24px
}

#inspector-content {
  padding-inline:6px
}

#inspector-content h2 {
  font-size:23px;
  line-height:1.3;
  margin:8px 0 15px;
  font-weight:500
}

.inspector-date {
  font-size:12px;
  color:#677485;
  margin:22px 0 0
}

.inspector-time {
  display:block;
  font:24px Bahnschrift,Arial,sans-serif;
  margin:4px 0 7px
}

.inspector-roster-title {
  font-size:11px;
  color:var(--ink-soft);
  font-weight:400;
  margin:26px 0 12px
}

.inspector-roster {
  display:flex;
  flex-wrap:wrap;
  gap:9px 10px
}

.roster-person {
  font-size:11px;
  display:flex;
  gap:6px;
  align-items:center
}

.roster-person i {
  font-style:normal;
  font-size:10px;
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e2e6ef;
  color:#627084
}

.inspector-action {
  margin-top:26px;
  font-size:11px;
  width:100%
}

/* Published schedules are distinct from solver trials and unpublished drafts. */
.candidate-panel {
  --cp-ink:var(--ink);
  --cp-muted:var(--ink-soft);
  --cp-line:var(--line);
  --cp-quiet:#f3f5f9;
  --cp-accent:var(--accent);
  --cp-accent-dark:var(--accent-strong);
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  font:inherit;
  color:var(--ink);
  box-shadow:none
}

.candidate-panel>h2,.candidate-panel>p.candidate-muted {
  display:none
}

.candidate-panel :is(h2,h3,h4) {
  font-family:inherit;
  color:var(--ink)
}

.candidate-panel h3 {
  font-size:18px
}

.candidate-panel input,.candidate-panel select,.candidate-panel textarea {
  background:#fff;
  color:var(--ink);
  border-color:var(--line);
  border-radius:7px
}

.candidate-panel summary {
  color:var(--ink);
  font-size:13px
}

.candidate-panel a {
  color:var(--accent)
}

.candidate-notice {
  border-radius:7px;
  padding:9px 12px;
  font-size:12px;
  margin:0 0 16px
}

.candidate-published,.candidate-player-tools,.candidate-rulebook-wrap,.candidate-draft,.candidate-availability-changes,.candidate-notification-area,.candidate-admin-details {
  padding:24px;
  border:1px solid var(--line);
  border-radius:14px;
  margin:0 0 18px;
  background:#fff;
  min-width:0;
  box-shadow:var(--shadow)
}

.candidate-admin {
  padding:0
}

.candidate-player-tools {
  border-radius:12px;
  padding:17px 22px
}

.candidate-player-tools .candidate-section-head h3 {
  font-size:14px
}

.candidate-player-tools>p {
  display:inline-block;
  margin:0 15px 10px 0;
  font-size:12px
}

.candidate-player-tools>button {
  font-size:12px;
  padding:7px 12px;
  min-height:34px
}

.candidate-published {
  padding:25px 0 0;
  overflow:hidden
}

.candidate-published>.candidate-section-head,.candidate-published>.candidate-tools,.candidate-published>.candidate-published-summary,.candidate-published>p {
  padding-inline:25px
}

.candidate-published>.candidate-section-head {
  align-items:center;
  justify-content:space-between
}

.candidate-published>.candidate-section-head h3 {
  font-size:15px;
  font-weight:600
}

.candidate-published-summary {
  font-size:11px;
  color:var(--ink-soft)
}

.candidate-published>.candidate-tools {
  margin:0;
  padding-block:16px;
  border-top:1px solid var(--line);
  background:#fafbfe
}

.candidate-published>.candidate-tools button {
  font-size:11px;
  min-height:34px;
  padding:7px 12px
}

.candidate-qq-preview {
  margin:0;
  padding:20px;
  border:0;
  border-top:1px solid var(--line);
  background:#f6f8fc
}

.candidate-section-head {
  margin-bottom:10px
}

.candidate-version {
  font-size:10px;
  padding:3px 6px;
  border:1px solid var(--line);
  border-radius:5px
}

.agenda-week-strip {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  margin:25px 18px 20px;
  gap:5px
}

.agenda-day {
  padding:10px 2px 5px;
  text-align:center;
  border:1px solid transparent;
  min-width:0;
  border-radius:9px
}

.agenda-day small {
  font-size:10px;
  color:#798595
}

.agenda-day strong {
  display:block;
  font:26px Bahnschrift,Arial,sans-serif;
  margin:2px 0 3px
}

.agenda-day>span {
  display:block;
  min-height:14px;
  font-size:9px
}

.agenda-day.has-session {
  background:#edf0fe;
  color:var(--accent);
  border-color:#d9e0fc
}

.agenda-day.has-session small {
  color:var(--accent)
}

.agenda-list {
  border-top:1px solid var(--line)
}

.candidate-panel button.agenda-session {
  display:grid;
  grid-template-columns:65px 80px minmax(0,1fr) 32px;
  align-items:center;
  gap:15px;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  padding:19px 24px;
  width:100%;
  text-align:left;
  background:#fff
}

.candidate-panel button.agenda-session:hover,.candidate-panel button.agenda-session[aria-pressed=true] {
  background:#f6f8fd
}

.session-date {
  display:flex;
  flex-direction:column;
  gap:6px
}

.session-date strong {
  font-size:13px;
  font-weight:500
}

.session-date small {
  font:11px Bahnschrift,Arial;
  color:#7b8698
}

.row-logo {
  width:80px;
  height:55px
}

.row-logo .cotct-lettering {
  font-size:6px
}

.row-logo .hld-lettering {
  font-size:5px;
  letter-spacing:0
}

.session-label {
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0
}

.session-label strong {
  font-size:14px;
  line-height:1.5;
  font-weight:550
}

.session-label small {
  font:12px Bahnschrift,Arial;
  color:#778298
}

.session-indicator {
  font-size:10px;
  color:#909bae
}

.session-inline-detail {
  padding:18px 24px;
  background:#f5f7fc;
  border-bottom:1px solid var(--line);
  font-size:12px
}

.agenda-timezone {
  font-size:10px;
  color:#8490a0;
  padding:10px 25px;
  margin:0!important
}

.agenda-filter {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:0 25px 15px;
  font-size:12px;
  color:var(--ink-soft)
}

.candidate-panel .agenda-filter button {
  border:0;
  min-height:0;
  background:none;
  padding:0;
  font-size:11px
}

.agenda-empty {
  text-align:center;
  padding:12px 20px 35px
}

.empty-diamond {
  font:50px Georgia;
  color:#cbd4e7
}

.agenda-empty h3 {
  font-size:18px;
  font-weight:500;
  margin:8px 0
}

.agenda-empty p {
  margin:0 auto 18px!important
}

.agenda-empty .btn {
  font-size:12px
}

/* Data editors keep a compact rhythm and visible, labelled controls. */
.toolbar,.view-controls {
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:end;
  gap:9px;
  margin-bottom:14px
}

.toolbar>label,.view-controls>label {
  display:grid;
  align-content:start;
  gap:4px;
  min-width:0;
  flex:1 1 120px
}

.view-controls {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));
  align-items:start;
  gap:10px
}

.view-controls>label>input,.view-controls>label>select {
  width:100%;
  min-width:0
}

.toolbar>button {
  font-size:11px;
  padding:9px 11px;
  min-height:38px
}

.toolbar #save-availability {
  margin-left:auto
}

.toolbar>label:has(#time-window) {
  max-width:180px
}

.toolbar #save-availability-repeat {
  background:#ecf0ff;
  color:var(--accent);
  border-color:#c7d1fa
}

.preset-drawer {
  font-size:12px;
  margin:0 0 16px;
  border-top:1px solid var(--line);
  padding-top:10px;
  color:var(--ink-soft)
}

.preset-drawer summary {
  cursor:pointer
}

.preset-drawer .toolbar {
  margin:12px 0 0
}

.repeat-status {
  background:#edf5f1;
  border:1px solid #cbdfd5;
  color:#32604c;
  border-radius:8px;
  margin:0 0 14px;
  padding:10px 12px;
  font-size:12px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px
}

.repeat-status .btn {
  font-size:11px;
  min-height:32px
}

.schedule-grid {
  --schedule-row-height:clamp(24px,calc((100svh - 160px)/24),29px);
  grid-template-columns:54px repeat(7,minmax(0,1fr));
  border:1px solid var(--line);
  border-radius:10px;
  max-height:none;
  background:#fff;
  overflow:visible;
  min-width:0;
  isolation:isolate
}

.schedule-grid>.range-highlight-layer {
  width:100%!important;
  height:100%!important
}

.grid-head,.day-cell,.time-cell,.slot-cell {
  border-right:1px solid #e8edf5;
  border-bottom:1px solid #e8edf5
}

.grid-head,.day-cell {
  height:40px;
  background:#f2f5fb;
  color:#53637e;
  font-size:11px;
  font-weight:500;
  display:flex;
  align-items:center;
  justify-content:center
}

.grid-head {
  font-size:9px;
  white-space:normal;
  line-height:1.2;
  text-align:center;
  min-width:0;
  padding:4px;
  left:0;
  z-index:5
}

.time-cell {
  background:#fafbfd;
  color:#7a8699;
  font:10px Bahnschrift,Arial,sans-serif;
  height:var(--schedule-row-height);
  min-height:var(--schedule-row-height);
  min-width:0;
  padding:0;
  z-index:2
}

.slot-cell {
  min-height:var(--schedule-row-height);
  height:var(--schedule-row-height);
  background:#fff;
  margin:0;
  padding:0;
  border-radius:0
}

.slot-cell.available,#edit-grid .slot-cell.available {
  background:#a6b6f1
}

.slot-cell.available:hover,#edit-grid .slot-cell.available:hover {
  background:#91a4eb
}

.slot-cell:focus-visible {
  z-index:4;
  outline-offset:-3px
}

.grid-end-time {
  position:sticky;
  left:0;
  z-index:2;
  grid-column:1;
  padding:5px 0;
  background:#fafbfd;
  text-align:center;
  font:10px Bahnschrift,Arial;
  color:#7a8699;
  height:23px
}

.grid-end-fill {
  grid-column:2/-1;
  background:#fafbfd;
  border-top:1px solid #e8edf5
}

.hidden-row {
  display:none
}

.slot-range-highlight {
  border-color:#536ec3;
  background:#dce6fa55;
  border-radius:6px
}

.slot-range-highlight::after,.slot-range-highlight::before {
  color:#283752
}

.legend {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:14px 0
}

.legend-item {
  border:1px solid var(--line);
  background:#f8fafd;
  border-radius:6px;
  padding:5px 9px;
  font-size:11px;
  color:#526079
}

.legend-dot {
  width:8px;
  height:8px
}

.schedule-rules-setting {
  border:0;
  padding:0;
  margin:0
}

.schedule-rules-setting legend {
  font-size:12px;
  color:var(--ink-soft)
}

.analysis-help {
  margin:0 0 10px;
  color:var(--ink-soft);
  font-size:12px
}

.analysis-help>summary {
  width:fit-content;
  min-height:36px;
  padding:8px 0;
  cursor:pointer
}

.analysis-help .hint {
  margin:0 0 10px
}

.analysis-help[open] {
  padding-bottom:2px
}

.selection-status {
  font-size:11px
}

.recommend-wrap {
  border-top:1px solid var(--line);
  padding-top:15px;
  margin-top:18px
}

.recommend-wrap h3 {
  font-size:13px
}

.recommend-list {
  font-size:12px;
  color:var(--ink-soft);
  line-height:1.8
}

.recommend-list li {
  color:var(--ink-soft)
}

.fill-suggest-wrap {
  background:#f5f7fb;
  border-radius:9px;
  padding:15px
}

.candidate-session-row {
  grid-template-columns:22px minmax(90px,1.4fr) minmax(70px,.8fr) minmax(73px,.8fr) minmax(73px,.8fr) 48px;
  gap:8px;
  padding:14px 0;
  border-color:var(--line)
}

.candidate-session-row:focus-within {
  background:#f3f5fc
}

.candidate-session-row select {
  font-size:12px;
  padding:7px 5px;
  min-height:37px
}

.candidate-row-number {
  color:#8592a8;
  font-family:Bahnschrift,Arial;
  font-size:11px
}

.candidate-field>span {
  font-size:10px;
  color:var(--ink-soft)
}

.candidate-remove {
  font-size:11px;
  min-height:37px
}

.candidate-draft-summary {
  font-size:12px;
  color:var(--ink-soft)
}

.candidate-mode {
  font-size:10px;
  color:#455d9d;
  background:#ecf0fc
}

.candidate-tools button {
  font-size:12px
}

.candidate-main-tools {
  border-color:var(--line)
}

.candidate-main-tools .candidate-primary {
  margin-left:auto
}

.candidate-publish-review {
  background:#f1f4fe;
  border-color:#ccd5f6;
  border-left-color:var(--accent);
  border-radius:8px
}

.candidate-details {
  border-color:var(--line)
}

.candidate-table th,.candidate-table td {
  font-size:12px;
  border-color:var(--line)
}

.candidate-table input[type=number] {
  width:65px;
  font-size:12px
}

.candidate-rulebook-wrap {
  padding:27px
}

.candidate-rulebook {
  border:0;
  margin:0;
  padding:0
}

.candidate-rulebook>summary {
  font-size:16px;
  margin-bottom:12px
}

.candidate-rulebook-search {
  max-width:none;
  gap:10px
}

.candidate-rulebook-search input {
  height:48px;
  font-size:14px;
  border-radius:9px;
  background:#f7f9fc
}

.candidate-rulebook-search button {
  min-width:70px
}

.candidate-rulebook-scope {
  font-size:11px;
  margin-top:16px;
  color:var(--ink)
}

.candidate-rulebook-result {
  padding:15px 5px!important;
  background:#fff
}

.candidate-rulebook-result strong {
  font-size:14px
}

.candidate-rulebook-result span {
  line-height:1.7;
  font-size:12px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden
}

.candidate-rulebook-entry {
  background:#f3f6fb;
  border-left:3px solid var(--accent);
  border-radius:0 9px 9px 0;
  font-size:13px;
  padding:22px
}

.candidate-rulebook-entry h4 {
  font-size:20px
}

.candidate-rulebook-text {
  line-height:1.9
}

.candidate-notification-settings {
  border:0;
  margin:0;
  padding:0
}

.candidate-notification-settings>summary {
  font-size:16px
}

.candidate-notification-form {
  gap:18px
}

.candidate-notification-form>p {
  font-size:11px
}

.candidate-group-routing {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}

.candidate-notification-times {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}

.candidate-availability-changes {
  padding:18px 22px
}

.candidate-availability-changes h3 {
  font-size:14px
}

.candidate-change-item {
  border-radius:0 8px 8px 0;
  font-size:12px
}

.candidate-invites {
  margin-top:0
}

.candidate-notification-area+.candidate-admin-details {
  margin-top:18px
}

.candidate-admin-details>summary {
  font-size:14px
}

.manage-members {
  background:#fff;
  border:1px solid var(--line);
  border-radius:9px
}

.member-row {
  border-color:var(--line);
  padding:12px;
  font-size:12px
}

.member-meta {
  color:var(--ink-soft);
  font-size:11px
}

.member-row .btn {
  font-size:11px;
  min-height:32px
}

.add-players-form {
  margin:24px 0;
  padding:0;
  border:0;
  background:none
}

.add-players-form label {
  display:block;
  margin-bottom:8px
}

.add-players-form textarea {
  width:100%
}

.danger-zone {
  border-top:1px solid var(--line);
  padding-top:15px;
  margin-top:25px;
  font-size:12px;
  color:var(--ink-soft)
}

.danger-zone summary {
  cursor:pointer
}

.danger-tools {
  padding-top:12px
}

.danger-tools .btn {
  font-size:11px
}

.help-list {
  font-size:13px;
  color:var(--ink-soft);
  line-height:1.8;
  gap:12px
}

.help-list li {
  color:inherit;
  line-height:inherit
}

/* Screen visibility is presentation-only; nodes and unsaved edits stay alive. */
[data-page-section] {
  display:none
}

body[data-page=availability] [data-page-section=availability],body[data-page=analysis] [data-page-section=analysis],body[data-page=groups] [data-page-section=groups],body[data-page=help] [data-page-section=help] {
  display:block
}

.candidate-published,.candidate-player-tools,.candidate-rulebook-wrap,.candidate-admin {
  display:none
}

body[data-page=agenda] .candidate-published,body[data-page=availability] .candidate-player-tools,body[data-page=rules] .candidate-rulebook-wrap {
  display:block
}

body.admin-mode:is([data-page=planning],[data-page=groups],[data-page=notifications]) .candidate-admin {
  display:block
}

.candidate-admin>* {
  display:none
}

body[data-page=planning] :is(.candidate-availability-changes,.candidate-draft,.candidate-planning-rules),body[data-page=groups] .candidate-invites,body[data-page=notifications] .candidate-notification-area {
  display:block
}

body:not(.admin-mode) .admin-only {
  display:none
}

body[data-page=planning] .candidate-planning-rules {
  padding:18px 22px
}

body[data-page=notifications] .campaign-inspector,body[data-page=rules] .campaign-inspector {
  opacity:.75
}

dialog {
  border:1px solid var(--line);
  background:white;
  color:var(--ink);
  border-radius:17px;
  max-width:min(540px,calc(100vw - 28px));
  box-shadow:0 30px 100px #18274933;
  padding:0
}

dialog::backdrop {
  background:#1823387a;
  backdrop-filter:blur(5px)
}

.dialog-inner {
  padding:28px;
  width:100%;
  min-width:0;
  gap:16px
}

.dialog-inner h3 {
  font-size:21px;
  margin:0
}

.dialog-inner label {
  display:grid;
  gap:6px
}

.dialog-actions {
  gap:8px;
  margin-top:10px;
  flex-wrap:wrap
}

.confirm-item {
  background:#f4f6fb;
  border:1px solid var(--line);
  border-radius:8px
}

.confirm-item span {
  color:var(--ink-soft)
}

.confirm-item strong {
  color:var(--ink)
}

.save-confirm-repeat-note {
  background:#fff5df;
  border-color:#ead6a5;
  color:#806226
}

@media(min-width:1600px) {
  .workspace-main {
    padding-inline:50px
  }
  .app-shell {
    grid-template-columns:224px minmax(0,1fr) 310px
  }
  .campaign-inspector {
    padding-right:30px
  }
  .inspector-stage {
    height:320px
  }
}

@media(max-width:1190px) {
  .app-shell {
    grid-template-columns:196px minmax(0,1fr)
  }
  .campaign-inspector {
    display:none
  }
  .workspace-main {
    padding:30px
  }
  .workspace-sidebar {
    padding-inline:13px
  }
  .gate-art {
    padding-inline:30px
  }
  .gate-stage-art {
    width:calc(100% + 60px);
    margin-left:-30px
  }
  .gate-login {
    padding-inline:9%
  }
  .gate-stage-caption h2 {
    font-size:28px
  }
  .gate-panel h1 {
    font-size:36px
  }
  .gate-art-footer {
    flex-wrap:wrap
  }
}

@media(max-width:760px) {
  .adventure-gate {
    grid-template-columns:1fr
  }
  .gate-art {
    min-height:300px;
    height:310px;
    padding:22px 26px
  }
  .gate-art>.site-brand {
    font-size:20px
  }
  .brand-caption {
    font-size:10px
  }
  .gate-campaign-stage {
    min-height:0;
    position:static
  }
  .gate-stage-art {
    position:absolute;
    width:70%;
    height:215px;
    min-height:0;
    right:-10px;
    top:48px;
    margin:0;
    background:transparent
  }
  .gate-stage-art:before {
    display:none
  }
  .gate-stage-art .large-logo {
    height:165px;
    width:85%;
    max-width:300px
  }
  .gate-stage-art .campaign-logo[data-campaign=bob] {
    height:170px;
    width:180px
  }
  .gate-stage-caption {
    position:absolute;
    bottom:73px;
    left:26px;
    max-width:42%;
    padding:0;
    z-index:2
  }
  .gate-stage-caption>span {
    font-size:9px;
    display:block;
    max-width:140px
  }
  .gate-stage-caption h2 {
    font-size:23px;
    line-height:1.4;
    max-width:150px
  }
  .gate-art-footer {
    padding-top:14px;
    margin-top:auto;
    flex-wrap:nowrap;
    z-index:5
  }
  .gate-campaign-picker {
    gap:2px
  }
  .gate-campaign-picker button {
    width:32px;
    height:36px;
    border-radius:16px;
    font-size:10px
  }
  .gate-carousel-controls {
    gap:8px
  }
  .gate-art-footer>span {
    font-size:9px
  }
  .gate-login {
    padding:22px 28px 30px
  }
  .gate-topline {
    font-size:10px
  }
  .gate-panel {
    padding:28px 0 0;
    max-width:500px
  }
  .gate-panel h1 {
    font-size:32px
  }
  .gate-panel h1 br {
    display:none
  }
  .gate-subtitle {
    font-size:12px;
    margin-bottom:20px
  }
  .gate-options {
    font-size:11px
  }
  .app-shell {
    grid-template-columns:1fr
  }
  .workspace-sidebar {
    position:sticky;
    top:0;
    z-index:20;
    height:auto;
    display:block;
    padding:12px 16px 0;
    background:#eef0f4f5;
    border-right:0;
    border-bottom:1px solid var(--line);
    overflow:visible;
    backdrop-filter:blur(12px)
  }
  .workspace-sidebar .site-brand {
    font-size:17px;
    padding:3px 0 12px;
    line-height:1.2
  }
  .workspace-sidebar .brand-symbol {
    font-size:29px;
    line-height:19px
  }
  .sidebar-campaigns,.sidebar-bottom {
    display:none
  }
  #workspace-nav {
    flex-direction:row;
    gap:3px;
    overflow-x:auto;
    padding-bottom:8px;
    scrollbar-width:thin
  }
  .nav-link {
    width:auto;
    flex:0 0 auto;
    gap:5px;
    font-size:11px;
    padding:7px 10px;
    min-height:36px;
    border-radius:6px
  }
  .nav-link [data-icon] {
    width:15px;
    height:15px
  }
  .nav-link svg {
    width:15px;
    height:15px
  }
  .nav-link[data-nav=rules] {
    margin-bottom:0
  }
  .workspace-main {
    padding:18px 18px 20px
  }
  .workspace-heading {
    margin-bottom:12px;
    align-items:center
  }
  .workspace-heading h1 {
    font-size:28px
  }
  .workspace-heading p {
    font-size:10px
  }
  .workspace-date {
    font-size:12px
  }
  .workspace-header {
    margin-bottom:12px
  }
  .week-choice {
    font-size:10px;
    padding:7px 9px;
    gap:6px
  }
  .workspace-section {
    padding:19px 16px;
    border-radius:12px
  }
  .section-title-wrap h2 {
    font-size:16px
  }
  .metric {
    font-size:11px
  }
  .candidate-published {
    padding-top:20px;
    border-radius:12px
  }
  .candidate-published>.candidate-section-head,.candidate-published>.candidate-published-summary {
    padding-inline:19px
  }
  .candidate-published>.candidate-tools {
    padding:13px 19px
  }
  .agenda-week-strip {
    margin:20px 12px 15px;
    gap:2px
  }
  .agenda-day {
    border-radius:7px;
    padding-top:7px
  }
  .agenda-day strong {
    font-size:24px
  }
  .agenda-day small {
    font-size:9px
  }
  .candidate-panel button.agenda-session {
    grid-template-columns:48px 58px minmax(0,1fr);
    gap:10px;
    padding:16px 17px
  }
  .row-logo {
    width:58px;
    height:44px
  }
  .session-date strong {
    font-size:12px
  }
  .session-date small {
    font-size:10px
  }
  .session-label strong {
    font-size:12px
  }
  .session-label small {
    font-size:11px
  }
  .session-indicator {
    display:none
  }
  .agenda-timezone {
    padding-inline:19px;
    font-size:9px
  }
  .agenda-empty {
    padding-bottom:28px
  }
  .agenda-empty h3 {
    font-size:17px
  }
  .candidate-player-tools,.candidate-draft,.candidate-availability-changes,.candidate-notification-area,.candidate-admin-details,.candidate-rulebook-wrap {
    padding:19px 16px;
    border-radius:12px
  }
  .candidate-panel h3 {
    font-size:17px
  }
  .candidate-panel .candidate-notice {
    font-size:11px
  }
  .candidate-session-row {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
    padding:14px 0
  }
  .candidate-row-number {
    grid-column:1/3;
    grid-row:1
  }
  .candidate-group-field {
    grid-column:1/-1
  }
  .candidate-remove {
    grid-column:3;
    grid-row:1;
    min-height:32px!important;
    justify-self:end;
    padding-inline:9px!important
  }
  .candidate-field>span {
    font-size:10px
  }
  .candidate-session-row select {
    min-height:42px
  }
  .candidate-main-tools .candidate-primary {
    margin-left:0
  }
  .candidate-tools button {
    flex:1 1 auto;
    min-height:42px
  }
  .candidate-table-wrap {
    margin-inline:-5px
  }
  .candidate-table {
    min-width:560px
  }
  .candidate-rulebook-search input {
    font-size:13px
  }
  .candidate-rulebook-entry {
    padding:16px;
    font-size:12px
  }
  .candidate-rulebook-entry h4 {
    font-size:18px
  }
  .candidate-rulebook-result span {
    font-size:11px
  }
  .candidate-group-routing {
    grid-template-columns:1fr
  }
  .candidate-notification-form>.candidate-field {
    max-width:none
  }
  .candidate-invite-row {
    align-items:stretch
  }
  .candidate-invite-row>label {
    width:100%
  }
  .candidate-invite-row>select {
    flex:1;
    min-width:0
  }
  .candidate-invite-row input {
    min-width:0;
    width:100%
  }
  .candidate-player-tools>.candidate-primary {
    min-height:38px
  }
  .toolbar {
    gap:8px
  }
  .toolbar>label:has(#time-window) {
    max-width:none;
    flex-basis:calc(100% - 75px)
  }
  .toolbar #save-availability {
    margin-left:0
  }
  .toolbar #save-availability,.toolbar #save-availability-repeat {
    flex:1;
    min-height:44px;
    white-space:nowrap
  }
  .toolbar select {
    font-size:12px
  }
  .toolbar>label {
    font-size:11px
  }
  .view-controls>label {
    font-size:11px
  }
  .view-controls {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .view-controls>label:has(#min-count) {
    grid-column:1/-1;
    grid-template-columns:minmax(0,1fr) 84px;
    align-items:center;
    gap:8px
  }
  .view-controls .btn {
    font-size:11px
  }
  .schedule-grid {
    --schedule-row-height:24px;
    grid-template-columns:40px repeat(7,minmax(0,1fr));
    border-radius:8px
  }
  .grid-head {
    font-size:8px
  }
  .day-cell {
    font-size:10px
  }
  .time-cell,.grid-end-time {
    font-size:9px
  }
  .day-label-full {
    display:none
  }
  .day-label-short {
    display:inline
  }
  .repeat-status {
    align-items:start;
    flex-wrap:wrap;
    font-size:11px
  }
  .recommend-list,.selection-status {
    font-size:11px
  }
  .legend-item {
    font-size:10px
  }
  .dialog-inner {
    padding:22px
  }
  .dialog-actions .btn {
    flex:1;
    min-height:44px;
    font-size:12px
  }
}

@media(max-width:370px) {
  .workspace-main {
    padding-inline:12px
  }
  .workspace-heading h1 {
    font-size:25px
  }
  .workspace-date {
    font-size:10px
  }
  .week-choice {
    font-size:9px;
    padding:6px;
    gap:4px
  }
  .workspace-section,.candidate-draft,.candidate-rulebook-wrap,.candidate-notification-area {
    padding:16px 12px
  }
  .toolbar #save-availability-repeat,.toolbar #save-availability {
    font-size:10px;
    padding-inline:8px
  }
  .candidate-panel button.agenda-session {
    grid-template-columns:42px 46px minmax(0,1fr);
    gap:8px;
    padding-inline:12px
  }
  .row-logo {
    width:46px
  }
  .agenda-day strong {
    font-size:21px
  }
  .candidate-notification-times {
    grid-template-columns:1fr
  }
  .gate-login {
    padding-inline:22px
  }
  .gate-panel h1 {
    font-size:29px
  }
  .gate-art {
    padding-inline:22px
  }
  .gate-art-footer>span {
    display:none
  }
  .gate-art-footer {
    justify-content:flex-end
  }
  .gate-stage-caption {
    left:22px
  }
  .gate-stage-caption h2 {
    font-size:20px
  }
  .gate-stage-art {
    right:0;
    width:68%
  }
  .gate-campaign-picker {
    gap:2px
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
}

body.identity-logged-in #login-user,body.identity-logged-in .login-code-field {
  display:none
}

body.admin-mode .login-code-field {
  display:none
}

.mobile-logout {
  display:none
}

.workspace-timezone-label {
  max-width:210px
}

.workspace-sidebar {
  min-width:0
}

.section-title-wrap {
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:space-between
}

.metric {
  width:auto;
  flex:0 0 auto
}

.preset-select-label {
  align-content:start
}

.mini-logo[data-campaign=hld] img,.row-logo[data-campaign=hld] img {
  filter:brightness(.28)
}

.campaign-logo[data-campaign=cotct],.campaign-logo[data-campaign=cotct].large-logo {
  aspect-ratio:827/271;
  height:auto;
  padding:0
}

.campaign-logo img.cotct-lettering {
  left:19%;
  top:16%;
  width:62%;
  height:auto!important;
  max-height:35%
}

@media(max-width:760px) {
  .mobile-logout {
    display:block;
    position:absolute;
    right:16px;
    top:10px;
    font-size:10px;
    padding:4px 7px;
    min-height:28px;
    border:0;
    color:var(--ink-soft)
  }
  .toolbar>.workspace-timezone-label {
    max-width:none;
    flex-basis:100%
  }
  .workspace-section[data-page-section="availability"]>.toolbar,
  .preset-drawer .toolbar {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:end;
    gap:10px 8px
  }
  .workspace-section[data-page-section="availability"]>.toolbar>label,
  .preset-drawer .toolbar>label {
    min-width:0;
    max-width:none;
    margin:0
  }
  .workspace-section[data-page-section="availability"]>.toolbar>label select {
    width:100%;
    min-width:0
  }
  #clear-selection,
  .preset-drawer .preset-select-label {
    grid-column:1/-1
  }
  .preset-drawer .toolbar>button {
    min-height:40px
  }
  .preset-drawer #delete-preset {
    grid-column:1/-1
  }
}

.candidate-pin-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.candidate-pin-form label { display: grid; gap: 6px; min-width: 0; }
.candidate-pin-form input { width: 100%; min-width: 0; }
.candidate-pin-form button { grid-column: 1 / -1; justify-self: start; }

@font-face{font-family:Pf2Icon;src:url("/assets/fonts/pf2icon.ttf") format("truetype");font-display:swap}.pf2-action{font-family:Pf2Icon!important;font-weight:normal;font-size:1.35em;line-height:1;display:inline-block;vertical-align:-.08em;margin-inline:.15em}.candidate-rule-badges{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.candidate-rule-badges>span{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid var(--line,#d9dfe5);border-radius:5px;font-size:12px}.candidate-rulebook-text p{white-space:pre-wrap;line-height:1.85;margin:0 0 12px}.candidate-rulebook-text h5{font-size:15px;margin:22px 0 8px}.candidate-rule-table{max-width:100%;overflow-x:auto;white-space:pre;font-size:12px;line-height:1.8;padding:12px;background:var(--surface,#f6f8fa)}.candidate-rule-card-link{display:inline-block;margin:8px 16px 12px 0}.candidate-rule-notices{font-size:12px;color:var(--muted,#647082);line-height:1.7;margin:8px 0 16px}.candidate-rulebook-entry{min-width:0;overflow-wrap:anywhere}

.candidate-rulebook-entry{scroll-margin-top:88px}

.pf2-action-fallback{font-size:.82em;color:var(--muted,#647082)}
