:root {
  --navy-950: #071a38;
  --navy-900: #0a2348;
  --navy-800: #123766;
  --blue-700: #0759c7;
  --blue-600: #0b6de3;
  --blue-100: #eaf3ff;
  --teal-700: #007d7b;
  --teal-600: #009795;
  --teal-100: #e6f7f5;
  --green-700: #18794e;
  --green-100: #e8f7ef;
  --amber-700: #a75a00;
  --amber-100: #fff2df;
  --orange-700: #c24b0a;
  --orange-100: #fff0e7;
  --level-a-plus-color: #007c82;
  --level-a-color: #075abd;
  --level-b-plus-color: #7252a6;
  --level-b-color: #8b5700;
  --level-c-color: #9b315a;
  --status-open-color: #176b45;
  --status-information-color: #0e7490;
  --status-cycle-color: #6d28d9;
  --status-no-information-color: #b42318;
  --fee-free-color: #9a3412;
  --fee-paid-color: #805600;
  --fee-evidence-color: #52657a;
  --ink: #12213c;
  --muted: #5f6d82;
  --muted-2: #8490a2;
  --line: #dbe3ed;
  --line-strong: #c9d4e2;
  --paper: #ffffff;
  --canvas: #f6f8fb;
  --soft: #f0f4f8;
  --shadow: 0 16px 50px rgba(16, 38, 70, 0.09);
  --radius-sm: 7px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --shell: 1240px;
  --font: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%233f5873' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 9 5 5 5-5'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }

[hidden] { display: none !important; }

html {
  min-height: 100%;
  background: var(--navy-950);
  color-scheme: light;
  scroll-behavior: smooth;
}

body {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

body > main { flex: 1 0 auto; }

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

button,
a { -webkit-tap-highlight-color: transparent; }

a { color: inherit; text-decoration: none; }

svg {
  width: 1.2em;
  height: 1.2em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

h1,
h2,
h3,
p { margin-top: 0; }

h1,
h2,
h3 {
  color: var(--navy-950);
  line-height: 1.28;
}

h1 { letter-spacing: -0.035em; }

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(11, 109, 227, 0.26);
  outline-offset: 2px;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 9px 14px;
  color: #fff;
  background: var(--navy-950);
  border-radius: var(--radius-sm);
  transform: translateY(-160%);
}

.skip-link:focus { transform: none; }

.shell {
  width: min(calc(100% - 48px), var(--shell));
  margin-inline: auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 74px;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(16px);
}

.header-inner {
  height: 100%;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto minmax(260px, 1fr);
  align-items: center;
  gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: max-content;
  color: var(--navy-950);
}

.brand-logo {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: block;
  border-radius: 50%;
  object-fit: contain;
}

.brand-copy { display: grid; line-height: 1.25; }
.brand-copy strong { font-size: 16px; letter-spacing: 0.01em; }
.brand-copy small { margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 500; }

.primary-nav {
  align-self: stretch;
  display: flex;
  align-items: stretch;
  gap: 34px;
}

.primary-nav a {
  position: relative;
  display: flex;
  align-items: center;
  color: #40506a;
  font-size: 15px;
  font-weight: 650;
}

.primary-nav a:hover,
.primary-nav a[aria-current="page"] { color: var(--blue-700); }

.primary-nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 3px;
  background: var(--blue-700);
  border-radius: 3px 3px 0 0;
}

.share-button,
.student-user-button,
.icon-button,
.subtle-button,
.pagination button {
  cursor: pointer;
  color: var(--navy-800);
  background: var(--paper);
  border: 1px solid var(--line-strong);
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease, transform 160ms ease;
}

.share-button,
.student-user-button {
  justify-self: end;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 650;
}

.student-user-button {
  position: relative;
  max-width: 108px;
  min-width: 86px;
  overflow: visible;
}

.student-user-avatar {
  position: relative;
  overflow: hidden;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: grid;
  place-items: center;
  color: #707070;
  background: #f8fafc;
  border: 1px solid #d3dfeb;
  border-radius: 50%;
}

.student-user-avatar::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 50%;
  width: 9px;
  height: 9px;
  background: currentColor;
  border-radius: 50%;
  transform: translateX(-50%);
}

.student-user-avatar::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 5px;
  width: 17px;
  height: 9px;
  background: currentColor;
  border-radius: 999px 999px 5px 5px;
  transform: translateX(-50%);
}

.student-user-avatar:has(img)::before,
.student-user-avatar:has(img)::after { display: none; }
.student-user-avatar img { width: 72%; height: 72%; object-fit: contain; border-radius: 0; }
.student-user-button.is-logged-in .student-user-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.student-user-name { min-width: 0; max-width: 3em; overflow: hidden; white-space: nowrap; }
.student-user-notification-badge {
  position: absolute;
  top: -7px;
  right: -7px;
  z-index: 2;
  min-width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  color: #fff;
  background: #df3346;
  border: 2px solid #fff;
  border-radius: 999px;
  box-shadow: 0 3px 9px rgba(178, 35, 52, 0.28);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}
.student-user-notification-badge[hidden],
.student-user-menu [data-student-menu-count][hidden] { display: none; }
.student-user-button.is-logged-in { color: #145b78; border-color: #a8cfdf; background: #f7fcff; }

.share-button:hover,
.student-user-button:hover,
.icon-button:hover,
.subtle-button:hover,
.pagination button:hover:not(:disabled) {
  color: var(--blue-700);
  border-color: #96b9e9;
  background: #f7fbff;
}

.nav-toggle { display: none !important; }

.icon-button {
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border-radius: 50%;
}

.button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 9px 17px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease;
}

.button:hover { transform: translateY(-1px); }
.button-primary { color: #fff; background: var(--teal-700); box-shadow: 0 5px 16px rgba(0, 125, 123, 0.18); }
.button-primary:hover { background: #006d6c; box-shadow: 0 8px 22px rgba(0, 125, 123, 0.24); }
.button-secondary { color: var(--blue-700); background: #fff; border-color: #a9c6eb; }
.button-secondary:hover { border-color: var(--blue-700); background: #f4f9ff; }
.button-official { color: #075abd; background: #edf5ff; border-color: #9fc1eb; }
.button-official:hover { color: #064a9c; background: #deecff; border-color: #6b9fdc; }
.button-resource { color: #8a4b00; background: #fff7e8; border-color: #ecc58d; }
.button-resource:hover { color: #733f00; background: #ffefd3; border-color: #d9aa68; }
.button-small { min-height: 36px; padding: 7px 12px; font-size: 12.5px; }
.button-compact { min-height: 31px; padding: 5px 9px; font-size: 11.5px; }
.button-icon { width: 15px; height: 15px; }
.button-disabled {
  color: #9099a7;
  background: #f4f6f8;
  border-color: #dfe4ea;
  box-shadow: none;
  cursor: not-allowed;
}
.button-disabled:hover { transform: none; }

.favorite-star-button {
  --favorite-color: #7d8898;
  --favorite-fill: transparent;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 0;
  color: var(--favorite-color);
  background: transparent;
  border: 0;
  font: inherit;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  transition: color 160ms ease, transform 160ms ease, opacity 160ms ease;
}

.favorite-star-button svg {
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
  fill: var(--favorite-fill);
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.favorite-star-button:hover { color: #b27a00; transform: translateY(-1px); }
.favorite-star-button:focus-visible { outline: 3px solid rgba(223, 165, 25, 0.25); outline-offset: 3px; }
.favorite-star-button:disabled { opacity: 0.58; cursor: wait; }
.favorite-star-button.is-saved { --favorite-color: #c28a00; --favorite-fill: #ffd65a; }

.favorite-star-button-icon {
  position: absolute;
  top: 18px;
  right: 20px;
  z-index: 4;
  width: 27px;
  height: 27px;
  padding: 0;
}

.favorite-star-button-icon [data-save-competition-label] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.favorite-star-button-row {
  width: auto;
  min-height: 36px;
  padding: 7px 12px;
  color: #667386;
  background: #fff;
  border: 1px solid #d7e1eb;
  border-radius: 6px;
  font-size: 12.5px;
}

.favorite-star-button-row:hover {
  color: #9c6b00;
  background: #fffaf0;
  border-color: #e6c76e;
}

.favorite-star-button-row.is-saved {
  color: #9d6b00;
  background: #fff7db;
  border-color: #f0c85e;
}

.favorite-star-button.is-flashing svg { animation: favorite-star-flash 660ms ease; }

@keyframes favorite-star-flash {
  0% { transform: scale(1); filter: drop-shadow(0 1px 1px rgba(7, 26, 56, 0.08)); }
  35% { transform: scale(1.34) rotate(-8deg); filter: drop-shadow(0 0 12px rgba(255, 205, 70, 0.75)); }
  100% { transform: scale(1); filter: drop-shadow(0 1px 1px rgba(7, 26, 56, 0.08)); }
}

@media (prefers-reduced-motion: reduce) {
  .favorite-star-button { transition: none; }
  .favorite-star-button.is-flashing svg { animation: none; }
}

.home-hero {
  padding-top: clamp(70px, 8vw, 116px);
  padding-bottom: clamp(68px, 8vw, 108px);
  text-align: center;
}

.home-hero::before {
  content: "";
  display: block;
  width: 42px;
  height: 4px;
  margin: 0 auto 24px;
  background: var(--teal-600);
  border-radius: 99px;
}

.home-hero h1 {
  margin-bottom: 18px;
  font-size: clamp(38px, 5vw, 66px);
  font-weight: 820;
}

.home-hero > p {
  max-width: 760px;
  margin: 0 auto 34px;
  color: var(--muted);
  font-size: clamp(16px, 1.8vw, 20px);
}

.hero-search {
  width: min(760px, 100%);
  min-height: 62px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 8px 9px 8px 19px;
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 11px;
  box-shadow: 0 14px 38px rgba(13, 38, 75, 0.08);
}

.hero-search svg,
.search-field svg { color: #78879a; }
.hero-search input,
.search-field input {
  min-width: 0;
  width: 100%;
  color: var(--ink);
  background: transparent;
  border: 0;
  outline: 0;
}
.hero-search input { font-size: 16px; }
.hero-search input::placeholder,
.search-field input::placeholder { color: #929cad; }

.section { padding: 78px 0; }
.section-muted { background: var(--canvas); border-block: 1px solid #edf0f4; }

.section-heading {
  margin-bottom: 30px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.section-heading h2 {
  margin-bottom: 8px;
  font-size: clamp(25px, 3vw, 34px);
  letter-spacing: -0.025em;
}

.section-heading p { margin-bottom: 0; color: var(--muted); }

.current-section {
  color: #fff;
  background: var(--navy-950);
  overflow: hidden;
}

.current-section h2 { color: #fff; }
.current-section .section-heading p { color: #aebed4; }

.carousel-controls { display: flex; gap: 9px; }
.current-section .icon-button { color: #fff; background: #102c55; border-color: #315077; }
.current-section .icon-button:hover { background: #183b6d; border-color: #5d7da6; }

.open-carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(380px, calc((100% - 20px) / 2));
  gap: 20px;
  overflow-x: auto;
  padding: 2px 0 13px;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: #4b6689 transparent;
}

.open-slide {
  position: relative;
  min-height: 330px;
  display: flex;
  flex-direction: column;
  padding: 30px;
  color: #d7e2f1;
  background: #0f2b53;
  border: 1px solid #294a76;
  border-radius: var(--radius-md);
  scroll-snap-align: start;
}

.open-slide h3 { margin: 18px 0 10px; color: #fff; font-size: 23px; }
.open-edition { margin: -3px 0 10px; color: #70ded6; font-size: 12px; font-weight: 700; }
.open-summary { color: #b8c8dc; }
.open-window { margin-top: auto; padding: 15px 0; border-top: 1px solid #2b4b73; }
.open-window strong { color: #fff; font-size: 13px; }
.open-window p { margin: 4px 0 0; color: #d3ddea; font-size: 13px; }
.card-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.open-slide > .tag-row { padding-right: 34px; }
.open-slide .button-secondary,
.open-slide .button-official,
.open-slide .button-resource { color: #fff; background: transparent; border-color: #58759a; }
.open-slide .button-disabled { color: #8494aa; background: #17345a; border-color: #29496f; }

.empty-inline {
  padding: 34px;
  text-align: center;
  color: #c5d1e0;
  background: #0f2b53;
  border: 1px solid #294a76;
  border-radius: var(--radius-md);
}
.empty-inline strong { color: #fff; font-size: 18px; }
.empty-inline p { margin: 7px 0 0; }

.tag-row { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.tag,
.level-badge,
.status-tag {
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 9px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.2;
  white-space: nowrap;
}
.tag { color: var(--teal-700); background: var(--teal-100); border: 1px solid #b6e2df; }
.tag-secondary { color: #5f4a94; background: #f3effb; border-color: #d4c8eb; }
.risk-tag { color: #9a3412; background: #fff1e8; border-color: #fdba8c; }
.risk-box { background: #fff8f3; border-color: #fed7bd; }
.fee-tag,
.catalog-month-tag {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.2;
  white-space: nowrap;
}
.catalog-month-tag { color: #345f8c; background: #f1f6fc; border-color: #c4d6e8; }
.status-tag.verified { color: var(--green-700); background: var(--green-100); border-color: #b9dfca; }
.status-tag.neutral { color: #536177; background: #f1f3f6; border-color: #d8dee6; }
.status-tag.cycle { color: var(--status-cycle-color); background: color-mix(in srgb, var(--status-cycle-color) 9%, white); border-color: color-mix(in srgb, var(--status-cycle-color) 34%, white); }
.status-tag.paused { color: #9a3412; background: #fff1e8; border-color: #fdba8c; }
.status-tag.risk { color: #805600; background: #fff8e8; border-color: #e7c875; }
.status-tag.deprioritized { color: #9a3412; background: #fff1e8; border-color: #f0a56b; }
.status-tag.renamed { color: #075abd; background: #edf5ff; border-color: #b8d2f3; }
.status-tag.open { color: var(--status-open-color); background: color-mix(in srgb, var(--status-open-color) 9%, white); border-color: color-mix(in srgb, var(--status-open-color) 34%, white); }
.status-tag.information { color: var(--status-information-color); background: color-mix(in srgb, var(--status-information-color) 9%, white); border-color: color-mix(in srgb, var(--status-information-color) 34%, white); }
.status-tag.no-information { color: var(--status-no-information-color); background: color-mix(in srgb, var(--status-no-information-color) 9%, white); border-color: color-mix(in srgb, var(--status-no-information-color) 34%, white); }
.fee-tag.free { color: var(--fee-free-color); background: color-mix(in srgb, var(--fee-free-color) 9%, white); border-color: color-mix(in srgb, var(--fee-free-color) 34%, white); }
.fee-tag.paid { color: var(--fee-paid-color); background: color-mix(in srgb, var(--fee-paid-color) 9%, white); border-color: color-mix(in srgb, var(--fee-paid-color) 34%, white); }
.level-badge { min-width: 39px; font-size: 12px; font-weight: 800; }
.level-a-plus { color: var(--level-a-plus-color); background: color-mix(in srgb, var(--level-a-plus-color) 9%, white); border: 1px solid color-mix(in srgb, var(--level-a-plus-color) 34%, white); }
.level-a { color: var(--level-a-color); background: color-mix(in srgb, var(--level-a-color) 9%, white); border: 1px solid color-mix(in srgb, var(--level-a-color) 34%, white); }
.level-b-plus { color: var(--level-b-plus-color); background: color-mix(in srgb, var(--level-b-plus-color) 9%, white); border: 1px solid color-mix(in srgb, var(--level-b-plus-color) 34%, white); }
.level-b { color: var(--level-b-color); background: color-mix(in srgb, var(--level-b-color) 9%, white); border: 1px solid color-mix(in srgb, var(--level-b-color) 34%, white); }
.level-c { color: var(--level-c-color); background: color-mix(in srgb, var(--level-c-color) 9%, white); border: 1px solid color-mix(in srgb, var(--level-c-color) 34%, white); }

.current-section .tag { color: #71e4dc; background: rgba(0, 151, 149, 0.14); border-color: rgba(102, 219, 211, 0.35); }
.current-section .level-badge { background: #fff; }

.page-intro {
  padding-top: 64px;
  padding-bottom: 38px;
  border-bottom: 1px solid var(--line);
}
.page-intro h1 { margin-bottom: 13px; font-size: clamp(34px, 4.4vw, 52px); }
.page-intro > p { max-width: 800px; margin-bottom: 0; color: var(--muted); font-size: 17px; }
.page-intro > .page-intro-guide { margin-top: 9px; font-size: 13px; }
.page-intro-guide a { color: #1768df; font-weight: 700; text-decoration: none; }
.page-intro-guide a:hover { text-decoration: underline; text-underline-offset: 3px; }
.catalog-shell { padding-top: 36px; padding-bottom: 100px; scroll-margin-top: 74px; }
.catalog-shell { padding-top: 32px; }

.level-tabs {
  display: flex;
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  scrollbar-width: none;
}
.level-tabs::-webkit-scrollbar { display: none; }
.level-tabs button {
  position: relative;
  flex: 0 0 auto;
  min-height: 56px;
  padding: 10px 23px;
  color: var(--muted);
  background: transparent;
  border: 0;
  cursor: pointer;
  font-weight: 700;
}
.level-tabs button::after {
  content: "";
  position: absolute;
  right: 16px;
  bottom: -1px;
  left: 16px;
  height: 3px;
  background: transparent;
  border-radius: 3px 3px 0 0;
}
.level-tabs button[aria-selected="true"] { color: var(--blue-700); }
.level-tabs button[aria-selected="true"]::after { background: var(--blue-700); }
.level-tabs small { margin-left: 5px; color: var(--muted-2); font-size: 11px; font-weight: 600; }

.catalog-toolbar {
  margin: 32px 0 20px;
  display: grid;
  grid-template-columns: minmax(300px, 1fr) auto;
  gap: 18px;
  align-items: end;
}
.search-field {
  height: 45px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
}
.filter-row { min-width: 560px; display: grid; grid-template-columns: repeat(3, minmax(135px, 1fr)) auto; align-items: end; gap: 10px; }
.filter-row > label { display: grid; grid-template-rows: 19px 45px; gap: 5px; }
.filter-row > label > span:first-child,
.result-bar label { color: var(--muted); font-size: 11px; font-weight: 650; }
.filter-row > label > span:first-child { line-height: 19px; }
.filter-row > label select,
.result-bar select {
  height: 45px;
  padding: 0 34px 0 12px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
}
.select-control {
  position: relative;
  height: 45px;
  display: block;
}
.select-control select {
  width: 100%;
  cursor: pointer;
}
.multi-filter {
  position: relative;
  width: 100%;
  min-width: 0;
  padding-top: 24px;
}
.multi-filter:first-of-type { min-width: 0; }
.single-filter { width: 100%; min-width: 0; }
.multi-filter summary {
  position: relative;
  height: 45px;
  min-height: 45px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: 1fr;
  align-items: center;
  column-gap: 10px;
  padding: 0 10px 0 12px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  cursor: pointer;
  list-style: none;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}
.multi-filter summary::-webkit-details-marker { display: none; }
.multi-filter summary > span {
  position: absolute;
  top: -24px;
  left: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 650;
  line-height: 19px;
}
.multi-filter summary strong {
  grid-column: 1;
  grid-row: 1;
  max-width: 185px;
  overflow: hidden;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.multi-filter summary svg {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  width: 18px;
  height: 18px;
  color: #3f5873;
  transition: transform 160ms ease;
}
.multi-filter summary:hover { border-color: #96b9e9; background: #f9fcff; }
.multi-filter[open] summary {
  border-color: var(--blue-600);
  box-shadow: 0 0 0 3px rgba(11, 109, 227, 0.11);
}
.multi-filter[open] summary svg { transform: rotate(180deg); }
.multi-filter-panel {
  position: absolute;
  z-index: 40;
  top: calc(100% + 7px);
  left: 0;
  width: max-content;
  min-width: 100%;
  max-width: min(330px, calc(100vw - 32px));
  max-height: min(390px, 62vh);
  overflow-y: auto;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  box-shadow: 0 18px 42px rgba(12, 39, 73, 0.16);
}
.multi-options { display: grid; gap: 2px; }
.multi-option {
  min-height: 36px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 6px 7px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 12px;
  line-height: 1.35;
}
.multi-option:hover { background: var(--blue-100); }
.multi-option input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--blue-700);
}
.multi-option small { color: var(--muted-2); font-size: 10px; font-weight: 650; }
.multi-option:has(input:checked) { color: var(--blue-700); background: #f1f7ff; font-weight: 700; }
.multi-clear {
  width: 100%;
  min-height: 34px;
  margin-top: 7px;
  color: var(--blue-700);
  background: var(--canvas);
  border: 0;
  border-radius: 5px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
}
.multi-clear:hover { background: var(--blue-100); }
.multi-filter-note { margin: 2px 6px 7px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.month-options {
  width: 260px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.month-options .multi-option:last-child { grid-column: 1 / -1; }
.subtle-button {
  min-height: 45px;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.result-bar {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: var(--muted);
  font-size: 13px;
}
.result-bar { margin-bottom: 12px; }
.result-bar p { margin: 0; }
.catalog-page-size-control {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-left: auto;
  white-space: nowrap;
}
.catalog-page-size-control > span:first-child { transform: translateY(-2px); }
.catalog-page-size-control .select-control { width: 82px; height: 34px; }
.catalog-page-size-control select {
  height: 34px;
  padding: 0 9px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}
.result-bar label { display: flex; align-items: center; gap: 8px; }
.result-bar select { height: 34px; }

.catalog-table { border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: visible; }
.catalog-header,
.catalog-row {
  display: grid;
  grid-template-columns: 104px minmax(220px, 2fr) minmax(185px, 1.1fr) minmax(112px, 0.85fr) minmax(135px, 1.12fr) minmax(185px, 1.35fr) 86px;
}
.catalog-header {
  min-height: 47px;
  align-items: center;
  color: var(--navy-800);
  background: #f4f7fb;
  border-bottom: 1px solid var(--line);
  font-size: 12px;
  font-weight: 800;
}
.catalog-header span { padding: 0 18px; text-align: center; }
.catalog-header span:first-child { white-space: nowrap; }
.catalog-loading-placeholder {
  min-height: 180px;
  display: grid;
  place-items: center;
  color: var(--muted);
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.catalog-results.is-loading .catalog-row { opacity: 0.58; pointer-events: none; }
.catalog-row { min-height: 124px; background: #fff; border-bottom: 1px solid var(--line); }
.catalog-row:last-child { border-bottom: 0; }
.catalog-row:hover { background: #fbfdff; }
.catalog-cell { min-width: 0; padding: 22px 18px; }
.level-cell { display: flex; align-items: flex-start; gap: 7px; }
.level-cell small { color: var(--muted-2); font-size: 10px; }
.name-cell h3 { position: relative; display: block; margin: 0 0 7px; font-size: 15px; }
.name-cell h3 a:hover { color: var(--blue-700); }
.search-highlight {
  padding: 0 0.08em;
  color: inherit;
  background: #fff0a8;
  border-radius: 2px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.name-cell p,
.organizer-cell p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.direction-cell { display: flex; align-content: flex-start; align-items: flex-start; flex-wrap: wrap; gap: 6px; }
.direction-cell .category-tag { width: max-content; max-width: 100%; min-height: 24px; padding: 3px 7px; font-size: 10px; line-height: 1.35; text-align: left; white-space: nowrap; }
.catalog-month { margin: 0; color: #485870; font-size: 12px; line-height: 1.6; }
.timing-status-cell { display: grid; align-content: start; justify-items: start; gap: 6px; }
.catalog-month { color: var(--navy-800); font-weight: 700; }
.organizer-cell p { color: #485870; }
.links-cell { display: flex; align-items: flex-start; justify-content: center; gap: 7px; flex-wrap: nowrap; }
.compact-actions { min-width: 0; flex: 1 1 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.compact-actions .button { width: 100%; min-width: 0; padding-inline: 7px; white-space: nowrap; }
.compact-actions .button-icon { display: none; }
.compact-actions .favorite-star-button-row {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
  min-height: 31px;
  padding: 4px 7px;
  font-size: 12px;
  line-height: 1.2;
}
.compact-actions .favorite-star-button-row svg {
  width: 16px;
  height: 16px;
}
.action-cell { display: flex; align-items: flex-start; justify-content: center; }
.detail-link {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--blue-700);
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}
.detail-link svg { width: 14px; height: 14px; }
.detail-link:hover { text-decoration: underline; }
.fee-fact { display: flex; align-items: flex-start; flex-direction: column; gap: 7px; }
.fee-fact small { color: var(--navy-800); font-size: 12px; line-height: 1.55; }
.fee-detail-note { margin: 0; color: var(--text-soft); font-size: 12px; line-height: 1.65; }
.fee-evidence-button,
.timing-evidence-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 34px;
  margin-top: 2px;
  padding: 7px 12px;
  border-radius: 9px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: none;
  white-space: nowrap;
}
.fee-evidence-button,
.timing-evidence-button {
  border: 1px solid color-mix(in srgb, var(--blue-700) 36%, white);
  background: color-mix(in srgb, var(--blue-700) 7%, white);
  color: var(--blue-700);
}
.fee-evidence-button:not(:disabled):hover,
.timing-evidence-button:not(:disabled):hover {
  border-color: color-mix(in srgb, var(--blue-700) 52%, white);
  background: color-mix(in srgb, var(--blue-700) 12%, white);
  color: var(--navy-950);
}
.fee-evidence-button.is-disabled,
.timing-evidence-button.is-disabled {
  color: #6b7788;
  background: #f1f5f9;
  border-color: #cbd5e1;
  cursor: not-allowed;
  opacity: 0.64;
}

.pagination {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
.pagination button {
  min-width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  padding: 0 8px;
  border-radius: 5px;
  font-size: 12px;
}
.pagination button[aria-current="page"] { color: #fff; background: var(--blue-700); border-color: var(--blue-700); }
.pagination button:disabled { color: #b3bbc6; background: #f7f8fa; cursor: not-allowed; }
.pagination span { color: var(--muted); }

.empty-state {
  padding: 62px 24px;
  text-align: center;
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}
.empty-state h3 { margin-bottom: 7px; }
.empty-state p { color: var(--muted); }

.dynamic-loading-placeholder {
  width: 100%;
  min-height: 160px;
  display: grid;
  place-items: center;
  padding: 24px;
  color: var(--muted);
  background: rgba(246, 249, 253, 0.86);
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius-sm);
  font-size: 13px;
  text-align: center;
}
.direction-grid > .dynamic-loading-placeholder { grid-column: 1 / -1; border: 0; border-radius: 0; }
.open-carousel > .dynamic-loading-placeholder { scroll-snap-align: start; }

.breadcrumb { padding: 28px 0 20px; display: flex; gap: 9px; color: var(--muted); font-size: 12px; }
.breadcrumb a { color: var(--blue-700); }
.detail-topbar { position: relative; }
.detail-topbar .breadcrumb { padding-right: 320px; }
.detail-team-actions { position: absolute; top: calc(50% + 14px); right: 0; display: inline-flex; align-items: center; gap: 9px; transform: translateY(-50%); }
.detail-page { min-height: calc(100vh - 250px); padding-bottom: 100px; }
.detail-loading,
.not-found { padding: 80px 0; text-align: center; color: var(--muted); }
.not-found h1 { font-size: 34px; }
.not-found .button { margin-top: 10px; }
.detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 370px);
  gap: 54px;
  padding: 28px 0 48px;
  border-bottom: 1px solid var(--line);
}
.detail-heading h1 { position: relative; max-width: 850px; margin: 19px 0 17px; font-size: clamp(34px, 4.5vw, 54px); }
.detail-summary { max-width: 820px; color: var(--muted); font-size: 17px; }
.detail-meta { margin: 28px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.detail-meta div { padding-top: 13px; border-top: 1px solid var(--line); }
.detail-meta dt { color: var(--muted); font-size: 11px; }
.detail-meta dd { margin: 4px 0 0; color: var(--navy-950); font-size: 13px; font-weight: 650; }
.detail-hero-side { align-self: start; display: grid; gap: 16px; }
.detail-action-panel {
  position: relative;
  align-self: start;
  padding: 25px;
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
}
.detail-team-launch-button {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 7px 13px;
  color: #08756c;
  background: #effaf7;
  border: 1px solid #b8e2db;
  border-radius: 8px;
  font: inherit;
  font-size: 12px;
  font-weight: 820;
  cursor: pointer;
}
.detail-team-launch-button:hover { color: #056158; background: #e4f7f2; border-color: #8fd1c7; }
.detail-team-launch-button:focus-visible { outline: 3px solid rgba(8, 137, 127, 0.18); outline-offset: 2px; }
.detail-team-launch-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.detail-team-cta-button { flex: 0 0 auto; min-height: 48px; padding: 11px 19px; background: #fff; border-radius: 10px; box-shadow: 0 8px 22px rgba(8, 117, 108, 0.1); font-size: 13px; }
.detail-team-join-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; color: var(--blue-700); border: 1px solid #b8d4f7; font-weight: 820; }
.detail-team-join-button:hover { color: #064c9f; background: var(--blue-100); border-color: #8eb9ef; }
.detail-team-join-button:focus-visible { outline: 3px solid rgba(7, 89, 199, 0.16); outline-offset: 2px; }
.detail-team-join-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.detail-team-cta-button .detail-team-cta-arrow { width: 16px; height: 16px; margin-left: 2px; transition: transform 160ms ease; }
.detail-team-cta-button:hover .detail-team-cta-arrow { transform: translateX(3px); }
.timing-badge { width: max-content; display: inline-flex; align-items: center; gap: 7px; padding: 4px 9px; border-radius: 99px; font-size: 11px; font-weight: 750; }
.timing-badge i { width: 7px; height: 7px; background: currentColor; border-radius: 50%; }
.timing-badge.verified { color: var(--green-700); background: var(--green-100); }
.timing-badge.reference { color: var(--amber-700); background: var(--amber-100); }
.timing-badge.cycle { color: var(--status-cycle-color); background: color-mix(in srgb, var(--status-cycle-color) 10%, white); }
.timing-badge.unknown { color: #687485; background: #e9edf2; }
.detail-action-panel > strong { display: block; margin-top: 18px; color: var(--navy-950); font-size: 20px; line-height: 1.35; }
.detail-action-panel > strong:first-child { margin-top: 0; }
.detail-action-panel .favorite-star-button-icon { top: 20px; right: 22px; }
.detail-action-panel > p { margin: 6px 0 5px; color: #4f5e73; font-size: 13px; }
.detail-action-panel > small { color: var(--muted); }
.detail-primary-actions { margin-top: 20px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.detail-primary-actions .button { width: 100%; min-width: 0; padding-inline: 8px; white-space: nowrap; }
.detail-primary-actions .button-icon { display: none; }
.action-note { color: var(--muted-2) !important; font-size: 11px !important; }
.detail-hero-side .source-box { width: 100%; margin: 0; box-sizing: border-box; padding: 20px 25px; }
.detail-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 370px); gap: 54px; padding-top: 44px; }
.detail-section { padding: 0 0 34px; margin-bottom: 33px; border-bottom: 1px solid var(--line); }
.detail-section:last-child { margin-bottom: 0; }
.detail-section h2,
.detail-side-section h2 { margin-bottom: 13px; font-size: 20px; }
.detail-section p { margin-bottom: 0; color: #48586e; font-size: 15px; white-space: pre-line; }
.detail-side-section { padding-bottom: 26px; margin-bottom: 26px; border-bottom: 1px solid var(--line); }
.detail-side-section > p { margin: 13px 0 0; color: var(--muted); font-size: 13px; }
.detail-content-grid > aside { display: grid; align-content: start; gap: 16px; }
.detail-content-grid > aside > .detail-side-section { margin: 0; padding: 24px; background: var(--canvas); border: 1px solid var(--line); border-radius: var(--radius-md); }
.current-name { margin: -7px 0 13px; color: var(--blue-700); font-size: 14px; }
.timing-source-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.timing-source-meta div { padding-top: 10px; border-top: 1px solid var(--line); }
.timing-source-meta div:first-child { grid-column: 1 / -1; padding-top: 0; border-top: 0; }
.timing-source-meta div:last-child { grid-column: 1 / -1; }
.timing-source-meta dt,
.event-facts dt { color: var(--muted-2); font-size: 11px; font-weight: 500; line-height: 1.45; }
.timing-source-meta dd,
.event-facts dd { margin: 3px 0 0; color: #48586e; font-size: 12px; font-weight: 650; line-height: 1.55; }
.registration-window-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.registration-window-list li { display: grid; gap: 2px; }
.registration-window-list strong { color: var(--navy-800); font-size: 11px; }
.registration-window-list span { font-weight: 650; }
.timing-source-details,
.fee-source-details { margin-top: 14px; }
.fee-source-details { width: 100%; }
.fee-source-details .fee-evidence-button,
.timing-source-details .timing-evidence-button {
  width: 126px;
  margin-top: 12px;
  justify-content: center;
}
.timing-source-details summary,
.fee-source-details summary { width: max-content; color: var(--blue-700); cursor: pointer; font-size: 12px; font-weight: 700; }
.timing-source-details p,
.fee-source-details p {
  margin: 10px 0 0;
  color: var(--muted);
  font-family: inherit;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: normal;
}
.event-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 18px; margin: 0; }
.event-facts > div { min-width: 0; }
.event-participation-fact { grid-column: 1 / -1; padding-bottom: 11px; border-bottom: 1px solid var(--line); }
.event-fee-summary,
.event-fee-reference { padding-bottom: 0; border-bottom: 0; }
.event-fee-reference { padding-left: 18px; border-left: 1px solid var(--line); }
.event-fee-details { grid-column: 1 / -1; padding: 0; border: 0; }
.evidence-list { margin: 0; padding: 0; list-style: none; }
.evidence-list li + li { margin-top: 8px; }
.evidence-list a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; color: var(--blue-700); border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: 12px; font-weight: 650; }
.evidence-list a:hover { border-color: #9fbde3; background: #f7fbff; }
.evidence-list svg { flex: 0 0 auto; }
.evidence-empty { color: var(--muted-2) !important; }
.source-box { padding: 18px; background: var(--canvas); border: 1px solid var(--line); border-radius: var(--radius-sm); }

.feedback-page { padding-bottom: 90px; }
.feedback-intro { max-width: 760px; padding: 70px 0 42px; }
.eyebrow { margin-bottom: 11px; color: var(--blue-700); font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.feedback-intro h1,
.admin-heading h1 { margin-bottom: 16px; font-size: clamp(38px, 5vw, 60px); }
.feedback-intro > p:last-child,
.admin-heading > div > p:last-child { color: var(--muted); font-size: 17px; }
.feedback-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr); gap: 70px; align-items: start; }
.feedback-form { padding: 34px; background: var(--canvas); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-heading { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; margin-bottom: 26px; }
.form-heading h2 { margin: 0; font-size: 24px; }
.form-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.form-heading p span,
.form-field i { color: #b9382d; font-style: normal; }
.form-field { display: grid; gap: 7px; margin-bottom: 21px; }
.form-field > span,
.form-field > label { color: var(--navy-800); font-size: 13px; font-weight: 700; }
.form-field input,
.form-field select,
.form-field textarea { width: 100%; min-width: 0; padding: 11px 13px; color: var(--ink); background: #fff; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); }
.form-field textarea { resize: vertical; line-height: 1.65; }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { border-color: var(--blue-600); }
.form-field small { color: var(--muted-2); font-size: 11px; }
.form-field textarea + small { text-align: right; }
#feedback-competition-hint.is-selected { color: var(--green-700); font-weight: 700; }
.form-field-compact { max-width: 420px; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.feedback-submit { min-width: 150px; }
.feedback-submit:disabled { opacity: 0.62; cursor: wait; transform: none; }
.form-message { min-height: 26px; margin: 4px 0 13px; color: var(--muted); font-size: 13px; }
.form-message.is-success { color: var(--green-700); }
.form-message.is-error { color: #b13229; }
.catalog-search-order {
  margin-left: auto;
  padding: 4px 9px;
  color: var(--blue-700);
  background: var(--blue-100);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}
.catalog-search-order + .catalog-page-size-control { margin-left: 0; }
.feedback-notes { display: grid; gap: 0; border-top: 1px solid var(--line); }
.feedback-notes section { position: relative; padding: 27px 0 28px; border-bottom: 1px solid var(--line); }
.feedback-notes h2 { margin-bottom: 8px; font-size: 18px; }
.feedback-notes p { margin: 0; color: var(--muted); font-size: 13px; }
.feedback-success-dialog {
  width: min(440px, calc(100vw - 32px));
  padding: 32px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-md);
  box-shadow: 0 24px 70px rgba(7, 27, 61, 0.25);
  text-align: center;
}
.feedback-success-dialog::backdrop { background: rgba(7, 27, 61, 0.48); backdrop-filter: blur(3px); }
.feedback-success-mark {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin: 0 auto 18px;
  color: #fff;
  background: var(--green-700);
  border-radius: 50%;
  font-size: 25px;
  font-weight: 850;
}
.feedback-success-dialog h2 { margin: 0 0 10px; font-size: 25px; }
.feedback-success-dialog > p { margin: 0; color: var(--muted); }
.feedback-success-reference { min-height: 22px; margin-top: 10px !important; color: var(--navy-800) !important; font-size: 12px; font-weight: 750; }
.feedback-success-dialog .button { min-width: 120px; margin-top: 20px; }

.admin-operation-dialog {
  width: min(480px, calc(100vw - 32px));
  max-height: min(720px, calc(100dvh - 32px));
  margin: auto;
  padding: 0;
  overflow: auto;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  box-shadow: 0 28px 80px rgba(7, 27, 61, 0.28);
}
.admin-operation-dialog::backdrop { background: rgba(7, 27, 61, 0.54); backdrop-filter: blur(4px); }
.admin-operation-result { padding: 30px; text-align: center; }
.admin-operation-mark {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  margin: 0 auto 16px;
  color: #fff;
  background: var(--green-700);
  border-radius: 50%;
  box-shadow: 0 10px 24px rgba(24, 121, 78, 0.22);
}
.admin-operation-dialog[data-result="error"] .admin-operation-mark { background: #b13229; box-shadow: 0 10px 24px rgba(177, 50, 41, 0.22); }
.admin-operation-mark svg { width: 31px; height: 31px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.admin-operation-dialog[data-result="success"] .admin-operation-icon-error,
.admin-operation-dialog[data-result="error"] .admin-operation-icon-success { display: none; }
.admin-operation-kicker { margin: 0 0 5px; color: var(--green-700); font-size: 11px; font-weight: 800; letter-spacing: 0.08em; }
.admin-operation-dialog[data-result="error"] .admin-operation-kicker { color: #a82d25; }
.admin-operation-dialog h2 { margin: 0; color: var(--navy-950); font-size: 25px; line-height: 1.3; }
.admin-operation-copy { margin: 10px auto 0; color: var(--muted); font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.admin-operation-versions { margin: 20px 0 0; display: grid; gap: 8px; text-align: left; }
.admin-operation-versions > div { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; background: #f5f8fb; border: 1px solid #dfe7ef; border-radius: 9px; }
.admin-operation-dialog[data-result="error"] .admin-operation-versions > div { background: #fff6f5; border-color: #efcfcc; }
.admin-operation-versions dt { color: var(--muted); font-size: 11px; font-weight: 700; }
.admin-operation-versions dd { min-width: 0; margin: 0; color: var(--navy-950); font-size: 12px; font-weight: 800; text-align: right; overflow-wrap: anywhere; }
.admin-operation-result form { margin-top: 20px; }
.admin-operation-result .button { min-width: 132px; }
.admin-community-moderation-dialog {
  width: min(560px, calc(100vw - 32px));
  max-height: min(720px, calc(100dvh - 32px));
  margin: auto;
  padding: 0;
  overflow: auto;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  box-shadow: 0 28px 80px rgba(7, 27, 61, 0.28);
}
.admin-community-moderation-dialog::backdrop { background: rgba(7, 27, 61, 0.54); backdrop-filter: blur(4px); }
.admin-community-moderation-form {
  position: relative;
  display: grid;
  gap: 18px;
  padding: 28px;
}
.admin-community-moderation-close { position: absolute; top: 16px; right: 16px; }
.admin-community-moderation-form header { padding-right: 48px; }
.admin-community-moderation-form h2 {
  margin: 2px 0 8px;
  color: var(--navy-950);
  font-size: 25px;
  line-height: 1.3;
}
.admin-community-moderation-form header p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.admin-community-moderation-form .form-field { margin: 0; }
.admin-community-moderation-form textarea {
  min-height: 132px;
  resize: vertical;
}
.admin-community-moderation-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.admin-community-moderation-actions .button { width: 100%; }

@media (max-width: 620px) {
  .admin-operation-dialog { width: min(440px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); border-radius: 13px; }
  .admin-operation-result { padding: 25px 19px 20px; }
  .admin-operation-mark { width: 54px; height: 54px; }
  .admin-operation-dialog h2 { font-size: 22px; }
  .admin-operation-versions > div { align-items: flex-start; flex-direction: column; gap: 4px; }
  .admin-operation-versions dd { text-align: left; }
  .admin-operation-result .button { width: 100%; }
  .admin-community-moderation-dialog { width: min(440px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); border-radius: 13px; }
  .admin-community-moderation-form { padding: 24px 18px 18px; }
  .admin-community-moderation-form h2 { font-size: 22px; }
  .admin-community-moderation-actions { grid-template-columns: 1fr; }
}

.admin-body { background: var(--canvas); }
.admin-entry-loading { display: none; }
.admin-entry-pending body { overflow: hidden; }
.admin-entry-pending .admin-page { visibility: hidden; }
.admin-entry-pending .admin-entry-loading {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: var(--canvas);
}
.admin-entry-loading-card {
  width: min(100%, 360px);
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 34px 30px;
  text-align: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 18px 55px rgba(7, 27, 61, 0.1);
}
.admin-entry-loading-card strong { color: var(--navy-950); font-size: 20px; }
.admin-entry-loading-card p { margin: 0; color: var(--muted); font-size: 12px; }
.admin-entry-loading-mark {
  width: 36px;
  height: 36px;
  margin-bottom: 4px;
  border: 3px solid #dbe9f4;
  border-top-color: var(--teal-600);
  border-radius: 50%;
  animation: admin-entry-spin 0.8s linear infinite;
}
@keyframes admin-entry-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .admin-entry-loading-mark { animation: none; border-color: var(--teal-600); }
}
.admin-page { padding: 58px 0 90px; }
.admin-heading { display: flex; justify-content: space-between; align-items: start; gap: 30px; margin-bottom: 38px; }
.admin-heading h1 { margin-bottom: 8px; }
.admin-body:not(.admin-login-mode) .admin-page { padding: 28px 0 76px; }
.admin-body:not(.admin-login-mode) .admin-heading { align-items: center; margin-bottom: 14px; }
.admin-body:not(.admin-login-mode) .admin-heading-copy { min-width: 0; }
.admin-body:not(.admin-login-mode) .admin-heading h1 { margin: 2px 0 5px; font-size: clamp(28px, 3vw, 38px); }
.admin-body:not(.admin-login-mode) .admin-heading .admin-guide { max-width: 820px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.admin-heading-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 9px; }
.admin-login { max-width: 860px; display: grid; grid-template-columns: minmax(190px, 0.85fr) repeat(2, minmax(180px, 1fr)) auto; gap: 14px; align-items: end; padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); }
.admin-login .form-field { margin: 0; }
.admin-login-copy { align-self: center; }
.admin-login-copy strong { color: var(--navy-950); font-size: 18px; }
.admin-login-copy p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.admin-password-control { position: relative; display: block; }
.admin-password-control input { padding-right: 58px; }
.admin-password-control button {
  position: absolute;
  top: 50%;
  right: 6px;
  min-width: 45px;
  min-height: 32px;
  padding: 0 8px;
  color: var(--blue-700);
  background: transparent;
  border: 0;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
  transform: translateY(-50%);
}
.admin-password-control button:hover { background: var(--blue-100); }
.admin-login-message { grid-column: 1 / -1; min-height: 0; margin: 0; }
.admin-login-mode .admin-page {
  min-height: 100svh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  padding-block: 28px;
}
.admin-login-mode .admin-heading { align-items: center; margin: 0; }
.admin-login-mode .admin-heading .eyebrow,
.admin-login-mode .admin-heading > div > p:last-child { display: none; }
.admin-login-mode .admin-heading h1 { margin: 0; font-size: 19px; line-height: 1.2; }
.admin-login-mode .admin-heading .button { min-height: 38px; padding: 8px 16px; }
.admin-login-mode .admin-login {
  width: min(100%, 420px);
  max-width: none;
  display: flex;
  flex-direction: column;
  align-self: center;
  justify-self: center;
  gap: 17px;
  margin-top: -30px;
  padding: 38px;
  border-radius: 14px;
  box-shadow: 0 18px 55px rgba(7, 27, 61, 0.1);
}
.admin-login-mode .admin-login-copy { margin-bottom: 3px; text-align: center; }
.admin-login-mode .admin-login-copy strong { display: block; font-size: 25px; line-height: 1.25; }
.admin-login-mode .admin-login-copy p { margin-top: 8px; font-size: 12px; }
.admin-login-mode .admin-login .form-field { width: 100%; }
.admin-login-mode .admin-login > .button { width: 100%; min-height: 46px; margin-top: 3px; }
.admin-login-mode .admin-login-message { width: 100%; text-align: center; }
.admin-toolbar { display: flex; gap: 4px; padding: 4px; margin-bottom: 22px; overflow-x: auto; background: #e9eef5; border-radius: var(--radius-sm); }
.admin-toolbar button { min-width: 90px; padding: 8px 13px; color: var(--muted); background: transparent; border: 0; border-radius: 5px; cursor: pointer; }
.admin-toolbar button[aria-selected="true"] { color: var(--navy-950); background: #fff; box-shadow: 0 1px 5px rgba(7, 27, 61, 0.08); }
.admin-list { display: grid; gap: 14px; }
.admin-card { padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.admin-card-meta { display: flex; justify-content: space-between; gap: 20px; color: var(--muted-2); font-size: 11px; }
.admin-card h2 { margin: 9px 0; font-size: 18px; }
.admin-card > p { white-space: pre-line; }
.admin-card > a { color: var(--blue-700); font-size: 12px; font-weight: 700; }
.admin-card .form-field { margin-top: 18px; }
.admin-actions { display: flex; flex-wrap: wrap; gap: 8px; }

.site-footer { flex: 0 0 auto; color: #becadd; background: var(--navy-950); }
.footer-meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: -8px;
  padding-bottom: 14px;
  color: #7f91aa;
  font-size: 10px;
}
.footer-meta-row small { color: inherit; font-size: inherit; }
.footer-meta-row a {
  color: #7f91aa;
  font-size: 10px;
  text-decoration: none;
}
.footer-meta-row a:hover { color: #c4d0e1; text-decoration: underline; text-underline-offset: 3px; }
.footer-inner {
  min-height: 154px;
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(300px, 1.25fr) minmax(250px, 0.95fr);
  align-items: center;
  gap: 46px;
  padding-block: 22px;
}
.footer-inner strong { color: #fff; }
.footer-inner p { margin: 6px 0 0; font-size: 12px; }
.footer-inner a:not(.footer-catalog-link) { color: #dcecff; text-decoration: underline; text-underline-offset: 3px; }
.footer-notice { padding-inline: 32px; border-inline: 1px solid rgba(190, 202, 221, 0.18); }
.footer-source { display: grid; justify-items: start; gap: 8px; }
.footer-source small { color: #8fa2bd; font-size: 11px; line-height: 1.5; }
.footer-catalog-link {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  color: #fff;
  background: #123766;
  border: 1px solid #46658e;
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 750;
}
.footer-catalog-link:hover { background: #194577; border-color: #6b89ae; }
.footer-official-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #dcecff;
  font-size: 11px;
  font-weight: 700;
}
.footer-official-link:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.footer-official-link .button-icon { width: 13px; height: 13px; }

.toast {
  --toast-tone: #075abd;
  --toast-tint: #eef6ff;
  position: fixed;
  z-index: 500;
  right: 24px;
  top: 92px;
  width: min(340px, calc(100vw - 32px));
  min-height: 56px;
  display: grid;
  align-content: center;
  overflow: hidden;
  padding: 14px 18px;
  color: #083367;
  background:
    radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--toast-tone) 12%, transparent), transparent 38%),
    linear-gradient(155deg, #fff 0%, color-mix(in srgb, var(--toast-tint) 78%, #fff) 100%);
  border: 1px solid color-mix(in srgb, var(--toast-tone) 22%, #d5e1ed);
  border-radius: 17px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 20px 42px rgba(19, 53, 86, 0.16);
  opacity: 0;
  transform: translateY(-12px) scale(0.98);
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
  font-size: 15px;
  font-weight: 850;
  line-height: 1.45;
  text-align: left;
}
.toast.is-visible { opacity: 1; transform: none; }
.toast.is-error {
  --toast-tone: #d94a4a;
  --toast-tint: #fff3f3;
  color: #8d1d1d;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 20px 42px rgba(142, 45, 45, 0.16);
}
.toast.is-success,
.toast.is-info {
  --toast-tone: #075abd;
  --toast-tint: #eef6ff;
  color: #0b376d;
}
.noscript { margin: 0; padding: 12px 20px; color: #fff; background: #8b3f00; text-align: center; }
.data-load-error { max-width: 720px; margin: 32px auto; padding: 24px; border: 1px solid #fecaca; border-radius: 12px; background: #fff7f7; color: #7f1d1d; text-align: center; }
.data-load-error strong { display: block; margin-bottom: 8px; font-size: 18px; }
.data-load-error p { margin: 0 0 16px; }

@media (max-width: 1080px) {
  .header-inner { grid-template-columns: 1fr auto auto; }
  .primary-nav { gap: 21px; }
  .catalog-toolbar { grid-template-columns: 1fr; }
  .filter-row { width: 100%; min-width: 0; }
  .catalog-header,
  .catalog-row { grid-template-columns: 96px minmax(210px, 1.8fr) minmax(170px, 1fr) minmax(108px, 0.85fr) minmax(130px, 1fr) minmax(176px, 1.25fr); }
  .catalog-header span:last-child,
  .action-cell { display: none; }
}

@media (max-width: 820px) {
  .shell { width: min(calc(100% - 32px), var(--shell)); }
  input,
  select,
  textarea { font-size: 16px; }
  .catalog-toolbar .search-field input { font-size: 16px; }
  .site-header { height: 66px; }
  .header-inner { grid-template-columns: 1fr auto auto; gap: 8px; }
  .brand-logo { width: 36px; height: 36px; flex-basis: 36px; }
  .brand-copy strong { font-size: 14px; }
  .brand-copy small { display: none; }
  .nav-toggle { display: inline-grid !important; grid-column: 2; }
  .share-button,
  .student-user-button { width: 38px; min-width: 38px; height: 38px; justify-content: center; padding: 0; }
  .share-button span,
  .student-user-button .student-user-name { display: none; }
  .primary-nav {
    position: absolute;
    top: 66px;
    right: 0;
    left: 0;
    display: none;
    height: auto;
    padding: 8px 16px 16px;
    background: #fff;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 15px 28px rgba(15, 38, 67, 0.08);
  }
  .primary-nav.is-open { display: grid; }
  .primary-nav a { min-height: 44px; padding: 0 12px; border-radius: 6px; }
  .primary-nav a[aria-current="page"] { background: var(--blue-100); }
  .primary-nav a[aria-current="page"]::after { display: none; }
  .toast {
    top: 76px;
    right: 12px;
    width: min(320px, calc(100vw - 24px));
    min-height: 52px;
    padding: 13px 16px;
    border-radius: 15px;
    font-size: 14px;
  }
  .student-user-menu { right: 12px !important; }
  .student-auth-shell,
  .student-profile-wizard { padding: 22px; }
  .my-layout { grid-template-columns: 1fr; }
  .my-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .my-panel { padding: 18px; }
  .my-settings-row,
  .my-settings-row-single,
  .my-settings-row-with-action { grid-template-columns: 1fr; }

  .home-hero { padding-top: 58px; padding-bottom: 64px; text-align: left; }
  .home-hero::before { margin-left: 0; }
  .home-hero h1 { font-size: clamp(36px, 11vw, 52px); }
  .home-hero > p { font-size: 16px; }
  .hero-search { grid-template-columns: auto 1fr; padding: 9px 12px; }
  .hero-search .button { grid-column: 1 / -1; width: 100%; }
  .section { padding: 58px 0; }
  .section-heading { align-items: center; }
  .open-carousel { grid-auto-columns: min(86vw, 390px); }
  .open-slide { min-height: 360px; padding: 25px; }
  .page-intro { padding-top: 48px; }
  .page-intro > p { font-size: 15px; }
  .catalog-shell { scroll-margin-top: 66px; }
  .filter-row { width: 100%; overflow: visible; align-items: end; padding-bottom: 3px; }
  .filter-row > label { min-width: 0; }
  .filter-row > label select { width: 100%; }
  .multi-filter:nth-of-type(even) .multi-filter-panel { right: 0; left: auto; }
  .catalog-page-size-control { display: inline-flex; }
  .catalog-table { overflow: visible; border: 0; }
  .catalog-header { display: none; }
  .catalog-results { display: grid; gap: 10px; }
  .catalog-row {
    min-height: 0;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 0 10px;
    padding: 19px 17px;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
  }
  .catalog-cell { padding: 0; }
  .level-cell { grid-column: 1; display: grid; justify-items: start; align-content: start; }
  .name-cell { grid-column: 2; min-width: 0; }
  .name-cell h3 { font-size: 16px; }
  .name-cell p { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .direction-cell { grid-column: 1 / -1; margin-top: 13px; }
  .timing-status-cell { grid-column: 1 / -1; display: flex; flex-wrap: wrap; margin-top: 10px; }
  .organizer-cell { grid-column: 1 / -1; margin-top: 11px; }
  .organizer-cell p { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .links-cell { grid-column: 1 / -1; align-items: center; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
  .compact-actions { margin-top: 0; }
  .catalog-row .action-cell { grid-column: 1 / -1; display: flex; align-items: center; justify-content: stretch; margin-top: 9px; }
  .catalog-row .action-cell .detail-link {
    width: 100%;
    min-height: 38px;
    justify-content: center;
    background: var(--blue-100);
    border: 1px solid #b8d4f7;
    border-radius: 7px;
  }
  .catalog-row .action-cell .detail-link:hover { background: #e5f1ff; text-decoration: none; }
  .button-compact { min-height: 35px; }

  .detail-hero,
  .detail-content-grid { grid-template-columns: 1fr; gap: 34px; }
  .detail-meta { grid-template-columns: 1fr; gap: 10px; }
  .detail-hero { padding-top: 24px; }
  .detail-action-panel { width: 100%; }
  .detail-content-grid { padding-top: 36px; }
  .feedback-layout { grid-template-columns: 1fr; gap: 42px; }
  .feedback-intro { padding-top: 48px; }
  .admin-heading { align-items: flex-start; flex-direction: column; }
  .footer-inner { min-height: 0; grid-template-columns: 1fr; align-items: flex-start; gap: 16px; padding-block: 24px; }
  .footer-notice { padding: 16px 0; border-inline: 0; border-block: 1px solid rgba(190, 202, 221, 0.18); }
}

@media (max-width: 480px) {
  .shell { width: min(calc(100% - 24px), var(--shell)); }
  .detail-topbar .breadcrumb { padding-right: 240px; }
  .detail-topbar .breadcrumb > span[aria-hidden="true"],
  .detail-topbar .breadcrumb > #breadcrumb-name { display: none; }
  .detail-team-actions { gap: 6px; }
  .detail-team-cta-button { min-height: 44px; padding: 9px 13px; font-size: 12px; }
  .detail-team-join-button { padding-inline: 11px; }
  .brand { gap: 8px; }
  .brand-copy strong { max-width: 160px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .home-hero h1 { font-size: 38px; }
  .section-heading h2 { font-size: 26px; }
  .carousel-controls { display: none; }
  .open-carousel { width: calc(100% + 12px); grid-auto-columns: calc(100% - 20px); }
  .catalog-toolbar { margin-top: 20px; }
  .filter-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; gap: 9px; }
  .filter-row > label,
  .multi-filter,
  .multi-filter:first-of-type { min-width: 0; }
  .multi-filter summary strong { max-width: 125px; }
  .multi-filter-panel { max-width: calc(100vw - 24px); }
  .filter-row .subtle-button { width: 100%; grid-column: 1 / -1; align-self: end; }
  .detail-heading h1 { font-size: 34px; }
  .detail-primary-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .detail-primary-actions .button {
    min-height: 42px;
    padding-inline: 6px;
    font-size: 12px;
    line-height: 1.45;
    text-align: center;
    white-space: normal;
  }
  .feedback-form { padding: 23px 18px; }
  .form-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .admin-login { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

.ai-hero {
  position: relative;
  overflow: hidden;
  padding: 68px 0 74px;
  background: #f5f9ff;
  border-bottom: 1px solid var(--line);
}
.ai-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(7, 89, 199, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(7, 89, 199, 0.045) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: linear-gradient(to bottom, #000, transparent 82%);
}
.ai-hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.7fr);
  align-items: center;
  gap: 64px;
}
.ai-eyebrow {
  margin-bottom: 14px;
  color: var(--blue-700);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.12em;
}
.ai-hero h1 {
  max-width: 760px;
  margin-bottom: 18px;
  font-size: clamp(40px, 5.8vw, 68px);
  letter-spacing: -0.045em;
}
.ai-hero-copy > p:not(.ai-eyebrow) {
  max-width: 730px;
  margin-bottom: 28px;
  color: #53647b;
  font-size: clamp(16px, 1.8vw, 19px);
}
.ai-hero-actions,
.ai-event-actions,
.ai-join-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.ai-open-section { padding: 70px 0; }
.ai-open-section .open-slide { min-height: 350px; }
.ai-open-section .open-summary { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.ai-open-section .detail-link {
  min-height: 36px;
  padding: 7px 12px;
  color: #fff;
  border: 1px solid #58759a;
  border-radius: var(--radius-sm);
  text-decoration: none;
}
.ai-open-section .detail-link:hover { background: #183b6d; }
.ai-map-section { padding: 82px 0 94px; }
.ai-map-lead { max-width: 760px; }
.ai-event-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.ai-event-card {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 23px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 11px;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.ai-event-card:hover {
  border-color: #a5bfdf;
  box-shadow: 0 13px 34px rgba(16, 44, 78, 0.08);
  transform: translateY(-2px);
}
.ai-event-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; padding-right: 34px; }
.ai-fit-tag {
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  color: #496078;
  background: #f1f5f9;
  border: 1px solid #dce5ee;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
}
.ai-event-card h3 { margin: 16px 0 9px; font-size: 18px; }
.ai-event-card h3 a:hover { color: var(--blue-700); }
.ai-event-focus { margin-bottom: 10px; color: #40536c; font-size: 13px; }
.ai-event-actions { margin-top: auto; padding-top: 13px; border-top: 1px solid var(--line); }
.ai-event-actions .detail-link {
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid #a9c6eb;
  border-radius: var(--radius-sm);
}
.ai-club-section {
  padding: 82px 0 90px;
  background: var(--canvas);
  border-top: 1px solid var(--line);
}
.ai-club-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 0.66fr);
  gap: 52px;
  align-items: start;
}
.ai-club-layout h2 { margin-bottom: 13px; font-size: clamp(28px, 3.8vw, 42px); }
.ai-club-layout > div > p { max-width: 700px; color: var(--muted); }
.ai-activity-grid { margin-top: 28px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.ai-activity { padding: 20px 20px 20px 0; border-bottom: 1px solid var(--line); }
.ai-activity:nth-child(even) { padding-left: 20px; border-left: 1px solid var(--line); }
.ai-activity strong { color: var(--navy-950); }
.ai-activity p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.ai-join-card {
  padding: 30px;
  color: #d7e2f1;
  background: var(--navy-950);
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(7, 26, 56, 0.18);
}
.ai-join-card h3 { margin-bottom: 11px; color: #fff; font-size: 24px; }
.ai-join-card p { color: #b9c9dd; }
.ai-join-card ul { margin: 18px 0 24px; padding-left: 20px; color: #d7e2f1; font-size: 13px; }
.ai-join-card .button-secondary { color: #fff; background: transparent; border-color: #597597; }
@media (max-width: 900px) {
  .ai-hero-inner,
  .ai-club-layout { grid-template-columns: 1fr; }
  .ai-hero-inner { gap: 36px; }
  .ai-event-grid { grid-template-columns: 1fr; }
  .ai-club-layout { gap: 34px; }
}
@media (max-width: 720px) {
  .ai-hero { padding: 50px 0 56px; }
  .ai-hero h1 { font-size: clamp(38px, 12vw, 54px); }
  .ai-open-section,
  .ai-map-section,
  .ai-club-section { padding-block: 58px; }
  .ai-activity-grid { grid-template-columns: 1fr; }
  .ai-activity,
  .ai-activity:nth-child(even) { padding: 18px 0; border-left: 0; }
  .ai-event-card { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .ai-event-card { transition: none; }
}

/* 2026-08 information hierarchy refinement */
.category-tag { --tag-color: #0d6770; --tag-fg: var(--tag-color); --tag-bg: color-mix(in srgb, var(--tag-color) 9%, white); --tag-border: color-mix(in srgb, var(--tag-color) 34%, white); }
.category-tag.category-innovation { --tag-color: var(--category-innovation-color, #9a5200); }
.category-tag.category-computing-ai { --tag-color: var(--category-computing-ai-color, #075abd); }
.category-tag.category-network-security { --tag-color: var(--category-network-security-color, #0f6b8f); }
.category-tag.category-electronics-robotics { --tag-color: var(--category-electronics-robotics-color, #176b55); }
.category-tag.category-business-finance { --tag-color: var(--category-business-finance-color, #006b6b); }
.category-tag.category-design-media { --tag-color: var(--category-design-media-color, #8e3d74); }
.category-tag.category-languages-humanities { --tag-color: var(--category-languages-humanities-color, #6b4bb2); }
.category-tag.category-math-data { --tag-color: var(--category-math-data-color, #165b9b); }
.category-tag.category-architecture-environment { --tag-color: var(--category-architecture-environment-color, #467126); }
.category-tag.category-social-career { --tag-color: var(--category-social-career-color, #91522e); }
.category-tag.category-sports-health { --tag-color: var(--category-sports-health-color, #a2333b); }
.tag.category-tag,
.current-section .tag.category-tag {
  color: var(--tag-fg);
  background: var(--tag-bg);
  border-color: var(--tag-border);
}

.home-catalog-download {
  width: fit-content;
  margin: 24px auto 0;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--blue-700);
  font-size: 12px;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.home-catalog-download > span {
  min-width: 32px;
  padding: 2px 5px;
  color: #fff;
  background: var(--blue-700);
  border-radius: 4px;
  font-size: 10px;
  text-decoration: none;
}
.section-kicker { margin: 0 0 7px !important; color: var(--blue-700) !important; font-size: 11px; font-weight: 850; letter-spacing: 0.12em; }
.direction-section { padding-top: 68px; }
#direction-section { scroll-margin-top: 12px; }
#open-section,
#ai-open-section,
#ai-difficulty-tabs { scroll-margin-top: 74px; }
.reference-risk { position: relative; width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; margin-left: 6px; color: #8b1e1e; background: #fdecec; border: 1px solid #c96a6a; border-radius: 50%; font-size: 11px; font-weight: 800; line-height: 1; vertical-align: 0.08em; cursor: help; }
.reference-risk:focus-visible { outline: 3px solid rgba(139, 30, 30, 0.24); outline-offset: 2px; }
.reference-risk-tooltip { position: absolute; z-index: 40; top: calc(100% + 8px); left: 50%; width: min(340px, calc(100vw - 32px)); padding: 11px 13px; color: #fff; background: #641b1b; border: 1px solid #8e3434; border-radius: 8px; box-shadow: 0 10px 28px rgba(66, 17, 17, 0.26); font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.6; letter-spacing: normal; text-align: left; transform: translateX(-50%); visibility: hidden; opacity: 0; pointer-events: none; }
.reference-risk:hover .reference-risk-tooltip,
.reference-risk:focus-visible .reference-risk-tooltip { visibility: visible; opacity: 1; }
.name-cell .reference-risk { position: static; }
.name-cell .reference-risk-tooltip { right: auto; left: 0; transform: none; }
.detail-heading .reference-risk {
  position: relative;
  width: 0.72em;
  height: 0.72em;
  margin-left: 0.2em;
  font-size: inherit;
  vertical-align: 0.19em;
}
.reference-risk > span:first-child {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  transform: translateY(-0.02em);
  pointer-events: none;
}
.detail-heading .reference-risk > span:first-child {
  font-size: 0.48em;
  font-weight: 600;
  transform: translateY(0.04em);
}
.detail-heading .reference-risk-tooltip {
  top: calc(100% + 10px);
  right: 0;
  left: auto;
  transform: none;
}
@media (max-width: 620px) {
  .name-cell .reference-risk-tooltip {
    right: auto;
    left: 50%;
    width: min(320px, calc(100vw - 48px));
    transform: translateX(-50%);
  }
  .detail-heading .reference-risk { position: static; vertical-align: 0.19em; }
  .detail-heading .reference-risk-tooltip {
    top: calc(100% + 10px);
    right: auto;
    left: 0;
    transform: none;
  }
}
.direction-section .section-heading p { color: var(--muted); font-size: 14px; }
#open-section { min-height: calc(100dvh - 74px); display: flex; align-items: center; padding-block: clamp(20px, 2.5vh, 30px); }
#open-section .section-heading { margin-bottom: 16px; }
#open-section .compact-open-carousel .open-slide { padding: 22px; }
#open-section .compact-open-carousel .open-window { margin-top: 0; }
#open-section .compact-open-carousel .open-summary {
  min-height: 8.75em;
  display: -webkit-box;
  overflow: hidden;
  line-height: 1.75;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
}
#open-section .compact-open-carousel .open-window p {
  min-height: 8.75em;
  line-height: 1.75;
  -webkit-line-clamp: 5;
}
#ai-open-section { min-height: calc(100dvh - 74px); display: flex; align-items: center; padding-block: clamp(23px, 3vh, 36px); }
#ai-open-section .section-heading { margin-bottom: 18px; }
#ai-open-section .compact-open-carousel .open-slide { padding: 18px; }
#ai-open-section .compact-open-carousel .open-slide h3 { margin: 10px 0 7px; }
#ai-open-section .compact-open-carousel .open-edition { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
#ai-open-section .compact-open-carousel .open-window { padding: 8px 0; }
#ai-open-section .compact-open-carousel .open-slide > .open-detail-link { margin-top: 2px; }
.direction-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 0 0 12px;
  scrollbar-width: thin;
}
.direction-tabs button {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 7px 14px;
  color: var(--muted);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 99px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}
.direction-tabs button[aria-selected="true"] { color: #fff; background: var(--navy-800); border-color: var(--navy-800); }
.direction-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.direction-card { position: relative; min-width: 0; padding: 26px 28px; background: #fff; }
.direction-card:nth-child(odd) { border-right: 1px solid var(--line); }
.direction-card:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
.direction-card > .tag-row { padding-right: 34px; }
.direction-card h3 { margin: 13px 0 7px; font-size: 18px; }
.direction-card h3 a:hover { color: var(--blue-700); }
.direction-card > p { min-height: 5.1em; margin-bottom: 13px; color: var(--muted); font-size: 12px; line-height: 1.7; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.compact-open-carousel { grid-auto-columns: minmax(275px, 318px); gap: 16px; }
.compact-open-carousel .open-slide { min-height: 288px; padding: 22px; }
.compact-open-carousel .open-slide h3 { margin: 14px 0 8px; font-size: 18px; overflow-wrap: anywhere; }
.compact-open-carousel .open-summary { margin-bottom: 13px; font-size: 12px; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.compact-open-carousel .open-window { padding: 11px 0; }
.compact-open-carousel .open-window p { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 12px; }
.compact-open-carousel .card-actions { flex-wrap: nowrap; }
.compact-open-carousel .button { min-width: 0; padding-inline: 9px; }

.ai-hero { padding: 62px 0 68px; }
.ai-hero-inner { grid-template-columns: minmax(0, 1.15fr) minmax(420px, 0.85fr); gap: 54px; }
.ai-hero h1 { max-width: 780px; font-size: clamp(42px, 5vw, 66px); }
.ai-hero-copy > p:not(.ai-eyebrow) { margin-bottom: 24px; }
.ai-map-section { padding: 76px 0 88px; }
.ai-difficulty-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.ai-difficulty-tabs button { min-height: 76px; padding: 14px 18px; text-align: left; color: var(--muted); background: #fff; border: 0; border-right: 1px solid var(--line); cursor: pointer; }
.ai-difficulty-tabs button:last-child { border-right: 0; }
.ai-difficulty-tabs button[aria-selected="true"] { color: #fff; background: var(--navy-800); }
.ai-difficulty-tabs strong { display: block; color: var(--navy-950); font-size: 17px; }
.ai-difficulty-tabs button[aria-selected="true"] strong { color: #fff; }
.ai-difficulty-tabs small { display: block; margin-top: 2px; font-size: 11px; }
.ai-event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ai-event-card { min-height: 188px; padding: 20px 22px; }
.ai-event-card h3 { margin: 13px 0 7px; font-size: 17px; }
.ai-event-focus { margin-bottom: 13px; font-size: 12px; }
.ai-event-actions { padding-top: 10px; flex-wrap: nowrap; }
.ai-event-actions .button { min-height: 34px; padding: 6px 10px; }
.ai-pagination { margin-top: 22px; }
.ai-open-section { padding: 68px 0 72px; }
.ai-open-section .open-slide { min-height: 282px; }

.footer-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 0; }
.footer-source { align-content: start; gap: 6px; padding-right: 24px; }
.footer-section-title,
.footer-dynamics-text > strong { display: block; margin-bottom: 2px; font-size: 14px; font-weight: 750; line-height: 1.4; }
.footer-catalog-link { width: 100%; min-height: 60px; padding: 10px 13px; background: #123d72; }
.footer-catalog-link > span:not(.footer-catalog-icon) { min-width: 0; display: grid; }
.footer-catalog-link strong { font-size: 12px; line-height: 1.55; }
.footer-catalog-link small { color: #b9cbe2; font-size: 10px; font-weight: 500; }
.footer-catalog-link > svg { margin-left: auto; flex: 0 0 auto; }
.footer-catalog-icon { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; background: #fff; border-radius: 7px; }
.footer-catalog-icon img { width: 23px; height: 23px; }
.footer-notice { padding-inline: 24px; }
.footer-dynamics-layout { display: grid; grid-template-columns: minmax(125px, 1fr) minmax(150px, 0.9fr); align-items: start; gap: 18px; }
.footer-dynamics-text { min-width: 0; }
.footer-dynamics-copy { margin: 6px 0 0 !important; line-height: 1.7; }
.footer-qr-grid { width: 100%; display: grid; grid-template-columns: repeat(2, 58px); align-items: start; justify-content: center; gap: 20px; margin: 0 auto; }
.footer-qr-card { min-width: 0; display: grid; justify-items: center; gap: 4px; margin: 0; }
.footer-qr-card img { width: 58px; height: 58px; padding: 3px; object-fit: contain; background: #fff; border-radius: 7px; }
.footer-qr-card figcaption { color: #8fa2bd; font-size: 9px; line-height: 1.2; }
.footer-disclaimer { margin-top: 6px !important; line-height: 1.55; }
.footer-brand { justify-self: stretch; padding-left: 24px; }
.footer-feedback-copy { max-width: 340px; color: #d4deec; line-height: 1.65; }
.footer-feedback-copy a { color: #eef5ff; text-decoration-color: rgba(238, 245, 255, 0.72); text-underline-offset: 3px; }
.footer-feedback-copy a:hover { color: #fff; }
.footer-feedback-links { line-height: 1.8; }
.footer-inner .footer-admin-link { display: block; width: fit-content; margin-top: 0; color: #8fa2bd; font-size: 10px; text-decoration-color: rgba(143, 162, 189, 0.45); }
.footer-inner .footer-admin-link:hover { color: #dcecff; }
.footer-brand small { display: block; margin-top: 9px; color: #8fa2bd; font-size: 11px; }
.feedback-notes section { padding-left: 0; }
@media (max-width: 1000px) {
  .ai-hero-inner { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-source,
  .footer-brand { width: 100%; justify-self: start; padding-inline: 0; }
  .footer-notice { padding: 16px 0; border-inline: 0; border-block: 1px solid rgba(190, 202, 221, 0.18); }
}
@media (max-width: 820px) {
  #direction-section { scroll-margin-top: 0; }
  #open-section,
  #ai-open-section,
  #ai-difficulty-tabs { scroll-margin-top: 66px; }
  #open-section { min-height: calc(100dvh - 66px); }
  #ai-open-section { min-height: calc(100dvh - 66px); }
}

@media (max-width: 720px) {
  .footer-dynamics-layout { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .footer-qr-grid { grid-template-columns: repeat(2, 50px); gap: 22px; margin-inline: auto; }
  .footer-qr-card img { width: 50px; height: 50px; }
  .footer-meta-row { align-items: flex-start; flex-direction: column; gap: 4px; margin-top: 0; padding-bottom: 12px; }
  .direction-grid { grid-template-columns: 1fr; }
  .direction-card:nth-child(odd) { border-right: 0; }
  .direction-card + .direction-card { border-top: 1px solid var(--line); }
  .direction-card:nth-child(-n + 2) { border-bottom: 0; }
  .compact-open-carousel { grid-auto-columns: minmax(270px, calc(100% - 20px)); }
  .ai-difficulty-tabs button { min-height: 68px; padding: 11px 9px; text-align: center; }
  .ai-difficulty-tabs small { display: none; }
  .ai-event-grid { grid-template-columns: 1fr; }
  .footer-catalog-link { max-width: 440px; }
}

/* 2026-08 unified public experience */
body:not(.admin-body) {
  background:
    radial-gradient(circle at 12% 4%, rgba(45, 180, 171, 0.08), transparent 29rem),
    radial-gradient(circle at 88% 8%, rgba(77, 117, 224, 0.09), transparent 34rem),
    #f9fbfe;
}

.home-hero {
  width: min(calc(100% - 32px), 1600px);
  min-height: calc(100svh - 92px);
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(34px, 4vh, 50px) clamp(28px, 4vw, 68px) clamp(30px, 3.5vh, 44px);
  background: linear-gradient(140deg, rgba(255, 255, 255, 0.9), rgba(236, 248, 251, 0.92) 48%, rgba(239, 243, 255, 0.94));
  border: 1px solid rgba(183, 207, 226, 0.78);
  border-radius: 26px;
  box-shadow: 0 24px 70px rgba(27, 63, 98, 0.09);
  text-align: left;
}
.home-hero::before { display: none; }
.home-hero-stage {
  width: min(980px, 100%);
  margin-inline: auto;
  display: block;
  text-align: center;
}
.home-hero-copy { position: relative; z-index: 1; }
.home-hero h1 {
  max-width: 980px;
  margin-bottom: 20px;
  color: var(--navy-950);
  font-size: clamp(44px, 4.65vw, 68px);
  line-height: 1.1;
  letter-spacing: -0.045em;
  text-wrap: balance;
}
.home-title-phrase { display: inline-block; white-space: nowrap; }
.home-hero h1 .home-title-accent {
  display: inline-block;
  margin-left: 0.08em;
  color: var(--blue-600);
  background: linear-gradient(105deg, var(--blue-600) 0%, #176fdf 58%, var(--teal-700) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.home-hero-copy > p {
  max-width: 720px;
  margin: 0 auto 30px;
  color: #566981;
  font-size: clamp(17px, 1.55vw, 21px);
}
.home-hero .hero-search {
  width: min(900px, 100%);
  min-height: 66px;
  margin: 0 auto;
  padding-left: 18px;
  border-color: #c5d8e8;
  border-radius: 14px;
  box-shadow: 0 16px 34px rgba(37, 80, 118, 0.11);
}
.home-hero .hero-search > img { width: 22px; height: 22px; }
.home-hero .hero-search input { font-size: 16px; }
.home-hero .hero-search .button { min-width: 112px; min-height: 48px; border-radius: 10px; }
.hot-searches {
  margin-top: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
  color: #687b91;
  font-size: 12px;
}
.hot-searches > span { margin-right: 2px; }
.hot-searches a {
  padding: 5px 10px;
  color: #536a84;
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid #d9e5ef;
  border-radius: 999px;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease;
}
.hot-searches a:hover { color: var(--blue-700); background: #fff; border-color: #aac9ea; }
.home-quick-links {
  width: min(1100px, 100%);
  margin: 24px auto 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  text-align: left;
}
.home-quick-links .quick-link {
  min-height: 130px;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: start;
  gap: 14px;
  padding: 18px;
  background: rgba(247, 251, 255, 0.88);
  border: 1px solid #cfe0f3;
  border-radius: 15px;
  transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}
.home-quick-links .quick-open { background: rgba(244, 252, 249, 0.9); border-color: #cce9df; }
.home-quick-links .quick-all { background: rgba(249, 247, 255, 0.9); border-color: #ddd5f3; }
.home-quick-links .quick-ai { background: rgba(255, 249, 243, 0.9); border-color: #f1dcc9; }
.home-quick-links .quick-link:hover { border-color: #83afe0; transform: translateY(-3px); box-shadow: 0 12px 28px rgba(30, 74, 116, 0.1); }
.quick-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  background: #e7f1ff;
  border-radius: 14px;
}
.quick-open .quick-icon { background: #e5f7f1; }
.quick-all .quick-icon { background: #f0eaff; }
.quick-ai .quick-icon { background: #fff0df; }
.quick-icon img { width: 30px; height: 30px; }
.quick-copy { min-width: 0; display: grid; align-content: start; gap: 4px; }
.home-quick-links .quick-copy strong { color: var(--navy-950); font-size: 16px; }
.home-quick-links .quick-copy > span { min-height: 38px; color: #607188; font-size: 12px; line-height: 1.55; }
.home-quick-links .quick-copy em { margin-top: 3px; color: var(--blue-700); font-size: 12px; font-style: normal; font-weight: 750; }
.quick-open .quick-copy em { color: var(--teal-700); }
.quick-all .quick-copy em { color: #7252a6; }
.quick-ai .quick-copy em { color: #c96516; }

.home-catalog-download {
  width: min(1100px, 100%);
  min-height: 70px;
  margin: 22px auto 0;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 11px 13px 11px 18px;
  color: var(--navy-950);
  background: #fff;
  border: 1px solid #d5e2ec;
  border-radius: 14px;
  text-decoration: none;
}
.home-catalog-download:hover { color: var(--navy-950); background: #fff; border-color: #9bc7cd; }
.home-catalog-download > span { min-width: 0; padding: 0; color: inherit; background: transparent; border-radius: 0; font-size: inherit; text-decoration: none; }
.home-catalog-download > .catalog-download-icon { width: 46px; height: 46px; display: grid; place-items: center; background: #fff; border-radius: 11px; }
.catalog-download-icon img { width: 29px; height: 29px; }
.home-catalog-download > .catalog-download-copy { min-width: 0; display: grid; gap: 3px; text-align: left; }
.catalog-download-copy strong { font-size: 14px; }
.catalog-download-copy small { color: #66788d; font-size: 11px; font-weight: 550; }
.home-catalog-download > .catalog-download-action {
  min-width: 118px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 9px 16px;
  color: #fff;
  background: var(--teal-700);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 750;
}
.catalog-download-action img { width: 17px; height: 17px; }

.home-catalog-summary {
  width: min(900px, 100%);
  margin: 16px auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px 28px;
  padding: 0;
  color: #687b91;
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: 12px;
  text-align: center;
}
.home-catalog-summary strong { color: var(--teal-700); font-size: 14px; }

.header-actions { justify-self: end; display: flex; align-items: center; gap: 10px; }
.header-search {
  width: 168px;
  min-height: 38px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 7px 13px;
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
}
.header-search:focus-within { border-color: #8fb7e8; box-shadow: 0 0 0 3px rgba(11, 109, 227, 0.08); }
.header-search img { width: 17px; height: 17px; }
.header-search input { min-width: 0; width: 100%; color: var(--ink); background: transparent; border: 0; outline: 0; font-size: 12px; }
.header-search input::placeholder { color: #8a97a8; }
.share-button > img { width: 17px; height: 17px; }

.student-user-menu {
  position: absolute;
  z-index: 1300;
  width: 168px;
  padding: 7px;
  background: #fff;
  border: 1px solid #d3dfec;
  border-radius: 8px;
  box-shadow: 0 18px 38px rgba(23, 51, 82, 0.16);
}

.student-user-menu[hidden] { display: none; }

.student-user-menu a,
.student-user-menu button {
  width: 100%;
  min-height: 36px;
  display: flex;
  align-items: center;
  padding: 0 10px;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-radius: 6px;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.student-user-menu a { justify-content: space-between; gap: 10px; }
.student-user-menu a > strong {
  min-width: 19px;
  height: 19px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  color: #fff;
  background: #df3346;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
}

.student-user-menu button {
  margin-top: 5px;
  border-top: 1px solid #edf2f7;
  border-radius: 0 0 6px 6px;
}

.student-user-menu a:hover,
.student-user-menu button:hover { color: var(--blue-700); background: #edf5ff; }

.ui-close-button {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  color: #42718f;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid #c7e1f1;
  border-radius: 10px;
  line-height: 0;
  cursor: pointer;
  touch-action: manipulation;
  transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.ui-close-button svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ui-close-button:hover {
  color: #205b80;
  background: #fff;
  border-color: #9bc7e4;
  box-shadow: 0 8px 18px rgba(35, 82, 118, 0.08);
}

.student-auth-dialog {
  position: relative;
  width: min(456px, calc(100vw - 28px));
  max-height: min(720px, calc(100vh - 36px));
  padding: 0;
  color: var(--ink);
  overflow: hidden;
  overscroll-behavior: contain;
  background: linear-gradient(180deg, #f8fcff 0%, #fff 34%);
  border: 1px solid #b9cede;
  border-radius: 8px;
  box-shadow: 0 32px 88px rgba(8, 30, 58, 0.28);
}

.student-auth-dialog::backdrop { background: rgba(8, 24, 42, 0.46); backdrop-filter: blur(5px); }

.student-auth-close {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 1;
}

.student-auth-shell,
.student-profile-wizard { position: relative; padding: 30px; }

.student-auth-heading { margin: 0 0 20px; padding-right: 66px; }
.student-auth-heading h2 { margin: 5px 0 0; color: var(--navy-950); font-size: 25px; line-height: 1.25; letter-spacing: 0; }

.student-auth-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 18px;
  padding: 5px;
  background: #e9f0f7;
  border: 1px solid #d8e4ef;
  border-radius: 8px;
}

.student-auth-tabs button {
  min-height: 36px;
  color: #60768e;
  background: transparent;
  border: 0;
  border-radius: 6px;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.student-auth-tabs button[aria-selected="true"] { color: var(--navy-950); background: #fff; box-shadow: 0 6px 16px rgba(16, 42, 71, 0.1); }

.student-auth-form,
.student-profile-step-form { display: grid; gap: 12px; }

.student-auth-form label,
.student-profile-text-field {
  display: grid;
  gap: 6px;
  color: #536a82;
  font-size: 12px;
  font-weight: 750;
}

.student-auth-form label small {
  color: #7b8ba0;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.45;
}

.student-auth-form input,
.student-profile-text-field input {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #cfdae6;
  border-radius: 8px;
  font: inherit;
  font-size: 14px;
}

.student-auth-form input:focus,
.student-profile-text-field input:focus { outline: 3px solid rgba(11, 109, 227, 0.14); border-color: #8ab5e7; }

.student-auth-form .button,
.student-profile-actions .button { width: 100%; min-height: 46px; }

.student-auth-form .button { margin-top: 16px; }

.student-auth-message { min-height: 18px; margin: 9px 0 0; color: #8f2d24; font-size: 12px; line-height: 1.5; }

.student-profile-progress {
  width: fit-content;
  margin: -4px 0 16px;
  padding: 4px 8px;
  color: #075abd;
  background: #edf5ff;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
}

.student-profile-options {
  display: grid;
  gap: 8px;
}

.student-profile-options label {
  display: block;
  cursor: pointer;
}

.student-profile-options input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.student-profile-options span {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 9px 12px;
  color: #28435e;
  background: #f8fbfe;
  border: 1px solid #d3dfec;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 760;
}

.student-profile-options input:checked + span {
  color: #075abd;
  background: #edf5ff;
  border-color: #8ab8ee;
  box-shadow: 0 0 0 3px rgba(11, 109, 227, 0.08);
}

.student-profile-actions {
  display: grid;
  grid-template-columns: 0.8fr 1fr;
  gap: 9px;
}

.student-profile-actions .button-secondary[hidden] { display: none; }

.my-page.shell {
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  padding: 0;
  background:
    linear-gradient(135deg, rgba(224, 248, 255, 0.78), rgba(245, 248, 255, 0.96) 46%, rgba(238, 244, 255, 0.88)),
    #f7fbff;
}

.my-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  width: min(calc(100% - 48px), var(--shell));
  margin: 34px auto 64px;
}

.my-sidebar {
  position: sticky;
  top: 88px;
  display: grid;
  gap: 12px;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.my-sidebar-profile-card {
  position: relative;
  width: 100%;
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 18px 14px 16px;
  overflow: hidden;
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(224, 248, 255, 0.82), rgba(246, 249, 255, 0.94)),
    #f7fbff;
  border: 0;
  border-radius: 8px;
  font: inherit;
  text-align: center;
  cursor: pointer;
}

.my-sidebar-profile-card::after {
  content: "";
  position: absolute;
  right: -22px;
  bottom: -34px;
  width: 96px;
  height: 96px;
  background: radial-gradient(circle, rgba(20, 139, 180, 0.13), transparent 68%);
  pointer-events: none;
}

.my-sidebar-avatar {
  position: relative;
  z-index: 1;
  width: 78px;
  height: 78px;
  display: block;
  padding: 4px;
  background: #fff;
  border: 1px solid #c7dff0;
  border-radius: 50%;
  box-shadow: 0 10px 24px rgba(25, 70, 107, 0.11);
}

.my-sidebar-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.my-sidebar-name {
  position: relative;
  z-index: 1;
  max-width: 100%;
  min-width: 0;
  color: var(--navy-950);
  display: block;
  overflow: hidden;
  font-size: 19px;
  font-weight: 900;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.my-profile-tags {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
}

.my-profile-tags span {
  max-width: 100%;
  padding: 3px 7px;
  overflow: hidden;
  color: #145b78;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(153, 197, 222, 0.72);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 780;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.my-profile-status {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 1;
  padding: 3px 7px;
  color: #9a5c00;
  background: rgba(255, 245, 219, 0.9);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
}

.my-profile-status.is-complete {
  color: #107153;
  background: rgba(221, 249, 236, 0.92);
}

.my-sidebar-tabs {
  display: grid;
  gap: 8px;
}

.my-sidebar-tabs button {
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  color: #53677e;
  background: transparent;
  border: 0;
  border-radius: 6px;
  font: inherit;
  font-size: 13px;
  font-weight: 780;
  text-align: left;
  cursor: pointer;
}

.my-sidebar-tabs button > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.my-sidebar-tabs button > strong {
  min-width: 19px;
  height: 19px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  color: #fff;
  background: #df3346;
  border-radius: 999px;
  box-shadow: 0 3px 9px rgba(178, 35, 52, 0.22);
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
}
.my-sidebar-tabs button > strong[hidden] { display: none; }
.my-sidebar-tabs button[aria-selected="true"] { color: #075abd; background: #edf5ff; }

.my-panel {
  min-height: 420px;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.my-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.my-panel-heading h1,
.my-panel-heading h2 { margin: 0; color: var(--navy-950); font-size: 26px; letter-spacing: 0; }
.my-panel-heading p { margin: 5px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.my-panel-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.my-chat-action-button {
  width: 132px;
  min-width: 132px;
  min-height: 40px;
  justify-content: center;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 850;
}

.my-return-button {
  width: 132px;
  min-width: 132px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px 14px;
  color: #075abd;
  background: #f4f9ff;
  border: 1px solid #a9c6eb;
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  cursor: pointer;
}
.my-return-button:hover {
  color: #064a9c;
  background: #eaf4ff;
  border-color: #75a8e4;
}

.my-auth-gate {
  display: flex;
  flex: 1 0 auto;
  min-height: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(64px, 12vh, 140px) 24px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: transparent;
}

.my-auth-gate h1 { margin: 0 0 12px; color: var(--navy-950); font-size: clamp(34px, 4.4vw, 54px); line-height: 1.16; letter-spacing: 0; }
.my-auth-gate p { margin: 0 auto 26px; max-width: 560px; color: var(--muted); font-size: 18px; line-height: 1.75; }
.my-auth-gate .button { min-width: 148px; min-height: 48px; }

/* Community phase one */
.community-page {
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: #f7f9fc;
}

.community-shell {
  padding-top: 38px;
  padding-bottom: 72px;
}

.community-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.community-heading h1 {
  margin: 0;
  color: var(--navy-950);
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.18;
  letter-spacing: 0;
}

.community-heading p {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}

.community-heading .button {
  min-width: 132px;
  min-height: 44px;
  gap: 7px;
}

.community-heading .button svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

.community-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-bottom: 14px;
  padding: 6px;
  background: #edf4fb;
  border: 1px solid #d9e6f2;
  border-radius: 10px;
}

.community-tabs button {
  min-width: 0;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 7px 12px;
  color: #50657e;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, color 160ms ease;
}

.community-tab-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #52718f;
  background: rgba(255, 255, 255, 0.72);
  border-radius: 7px;
}

.community-tab-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.community-tabs button strong { min-width: 0; font-size: 13px; font-weight: 850; }
.community-tabs button:hover { color: #075abd; background: rgba(255, 255, 255, 0.66); }
.community-tabs button[aria-selected="true"] { color: #075abd; background: #fff; border-color: #bdd6ee; box-shadow: 0 7px 18px rgba(35, 88, 139, 0.09); }
.community-tabs button[aria-selected="true"] .community-tab-icon { color: #fff; background: linear-gradient(135deg, #1679dd, #075abd); box-shadow: 0 5px 12px rgba(11, 109, 227, 0.2); }

.community-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 286px;
  gap: 24px;
  align-items: start;
  margin-top: 0;
}

.community-feed-column { min-width: 0; }

.community-feed-panel,
.community-side-section {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.community-feed-panel { min-width: 0; overflow: hidden; }

.community-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(190px, 0.55fr) auto;
  gap: 10px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
}

.community-filters input,
.community-filters select,
.community-form input,
.community-form select,
.community-form textarea,
.community-comment-form textarea {
  width: 100%;
  min-height: 42px;
  padding: 9px 12px;
  color: var(--navy-950);
  background: #fff;
  border: 1px solid #cddbea;
  border-radius: 7px;
  font: inherit;
  font-size: 13px;
  line-height: 1.55;
}

.community-filters input:focus,
.community-filters select:focus,
.community-form input:focus,
.community-form select:focus,
.community-form textarea:focus,
.community-comment-form textarea:focus {
  outline: 0;
  border-color: #6ea6e7;
  box-shadow: 0 0 0 3px rgba(11, 109, 227, 0.1);
}

.community-search { position: relative; }
.community-search img {
  position: absolute;
  top: 12px;
  left: 12px;
  width: 18px;
  height: 18px;
  opacity: 0.55;
}
.community-search input { padding-left: 39px; }

.community-feed { min-height: 380px; }

.community-avatar {
  display: block;
  object-fit: cover;
  background: #eef5fd;
  border: 1px solid #d5e2ef;
  border-radius: 50%;
}

.community-official-avatar {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #075abd;
  background: #edf5ff;
  border: 1px solid #c6dcf5;
  border-radius: 50%;
  font-size: 15px;
  font-weight: 900;
}

.community-type-label,
.community-pinned {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.community-type-label { color: #08745f; background: #e4f7f2; }
.community-pinned { color: #9a4d00; background: #fff0df; }

.community-team-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 18px;
  margin-top: 13px;
  padding: 12px 14px;
  color: #5d7289;
  background: #f8fbfe;
  border: 1px solid #e0eaf3;
  border-radius: 7px;
  font-size: 12px;
  line-height: 1.5;
}

.community-team-summary b { margin-right: 7px; color: var(--navy-800); font-weight: 820; }

.community-sidebar {
  position: sticky;
  top: 88px;
  align-self: start;
  max-height: calc(100dvh - 104px);
  display: grid;
  gap: 16px;
  overflow-y: auto;
}
.community-side-section { padding: 18px; }
.community-side-section h2 {
  margin: 0 0 12px;
  color: var(--navy-950);
  font-size: 16px;
}

.community-side-section > a {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 2px;
  color: #445d76;
  border-bottom: 1px solid #edf1f5;
  font-size: 13px;
  text-decoration: none;
}

.community-side-section > a:last-of-type { border-bottom: 0; }
.community-side-section > a:hover { color: #075abd; }
.community-side-section > a strong { color: #075abd; font-size: 16px; }

.community-rules ol {
  margin: 0;
  padding-left: 20px;
  color: #6b7d91;
  font-size: 12px;
  line-height: 1.75;
}
.community-rules li + li { margin-top: 6px; }

.community-empty {
  min-height: 380px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
}
.community-empty h2 { margin: 0; color: var(--navy-950); font-size: 21px; }
.community-empty p { margin: 9px 0 20px; color: var(--muted); font-size: 13px; }

.community-pagination,
.community-pagination .pagination {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-top: 1px solid var(--line);
}

.community-pagination > button,
.community-pagination .pagination button {
  min-width: 36px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  color: #4c6680;
  background: #fff;
  border: 1px solid #d3dfeb;
  border-radius: 7px;
  font: inherit;
  font-size: 12px;
  font-weight: 780;
  cursor: pointer;
}

.community-pagination button[aria-current="page"] { color: #fff; background: #0b6de3; border-color: #0b6de3; }
.community-pagination button:disabled { opacity: 0.45; cursor: default; }
.community-pagination svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }

.community-dialog {
  width: min(720px, calc(100vw - 32px));
  max-height: min(860px, calc(100vh - 32px));
  padding: 26px;
  overflow: auto;
  color: var(--ink);
  background: #fff;
  border: 1px solid #cbd9e8;
  border-radius: 12px;
  box-shadow: 0 28px 80px rgba(7, 27, 61, 0.2);
}

.community-dialog::backdrop { background: rgba(7, 27, 61, 0.48); backdrop-filter: blur(3px); }
.community-dialog > .ui-close-button { position: absolute; top: 14px; right: 14px; }
.community-dialog > header { padding-right: 42px; }
.community-dialog > header h2 { margin: 0; color: var(--navy-950); font-size: 25px; line-height: 1.35; }
.community-dialog > header p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.community-small-dialog { width: min(520px, calc(100vw - 32px)); }

.community-form { display: grid; gap: 15px; margin-top: 20px; }
.community-form > label,
.community-form-row > label,
.community-team-fields > label {
  display: grid;
  gap: 7px;
  color: var(--navy-800);
  font-size: 12px;
  font-weight: 820;
}
.community-form textarea,
.community-comment-form textarea { resize: vertical; }
.community-form-type { display: flex; gap: 10px; }
.community-form-type label { position: relative; cursor: pointer; }
.community-form-type input {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.community-form-type span {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 16px;
  color: #51677e;
  background: #f7f9fc;
  border: 1px solid #d4e0ec;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 820;
}
.community-form-type input:checked + span { color: #075abd; background: #edf5ff; border-color: #8ab8ee; }
.community-form-type input:focus-visible + span { outline: 3px solid rgba(7, 90, 189, 0.24); outline-offset: 2px; }
.community-team-fields { display: grid; gap: 15px; padding: 16px; background: #f8fbfe; border: 1px solid #dce8f3; border-radius: 8px; }
.community-team-fields[hidden] { display: none; }
.community-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }

.community-comment-list { display: grid; gap: 0; margin-top: 8px; }
.community-comment-empty { padding: 22px 0; color: var(--muted); font-size: 12px; }
.community-comment-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; margin-top: 16px; }
.community-comment-form .button { min-height: 42px; }

/* Community dynamic feed */
.community-feed-panel { background: transparent; border: 0; border-radius: 0; overflow: visible; }
.community-filters { margin-bottom: 14px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.community-feed { display: grid; gap: 14px; min-height: 380px; }
.community-dynamic-card {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  gap: 14px;
  padding: 22px 22px 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(20, 48, 82, 0.035);
}
.community-dynamic-card.is-official { background: linear-gradient(135deg, #fffdf7 0%, #fff 52%); border-color: #ead7a5; }
.community-dynamic-avatar { padding-top: 1px; }
.community-avatar-button,
.community-author-name {
  padding: 0;
  background: transparent;
  border: 0;
  font: inherit;
  cursor: pointer;
}
.community-avatar-button { display: block; border-radius: 50%; }
.community-avatar-button:focus-visible { outline: 3px solid rgba(11, 109, 227, 0.2); outline-offset: 2px; }
.community-avatar { width: 48px; height: 48px; }
.community-official-avatar { width: 48px; height: 48px; color: #8d5e05; background: #fff5d8; border-color: #ead49b; }
.community-dynamic-main { min-width: 0; }
.community-dynamic-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.community-author-name { color: var(--navy-950); font-size: 14px; font-weight: 860; line-height: 1.45; text-align: left; }
.community-author-name:hover { color: #075abd; }
.community-author-name:disabled { color: #8d5e05; cursor: default; opacity: 1; }
.community-dynamic-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 4px; color: #8a99aa; font-size: 10px; }
.community-type-label { min-height: 20px; padding: 1px 7px; }
.community-type-label.is-official { color: #8d5e05; background: #fff1c7; }
.community-dynamic-title { margin: 13px 0 7px; color: var(--navy-950); font-size: 18px; line-height: 1.5; letter-spacing: 0; overflow-wrap: anywhere; }
.community-dynamic-body { position: relative; color: #3e556d; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.community-dynamic-body.is-collapsed { max-height: 7.2em; overflow: hidden; }
.community-dynamic-body.is-collapsed::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2.6em; content: ""; background: linear-gradient(transparent, #fff); pointer-events: none; }
.community-dynamic-card.is-official .community-dynamic-body.is-collapsed::after { background: linear-gradient(transparent, #fffdf8); }
.community-markdown > :first-child { margin-top: 0; }
.community-markdown > :last-child { margin-bottom: 0; }
.community-markdown p { margin: 0 0 9px; }
.community-markdown h3,
.community-markdown h4,
.community-markdown h5,
.community-markdown h6 { margin: 14px 0 7px; color: var(--navy-950); line-height: 1.45; }
.community-markdown h3 { font-size: 17px; }
.community-markdown h4 { font-size: 15px; }
.community-markdown h5,
.community-markdown h6 { font-size: 14px; }
.community-markdown ul,
.community-markdown ol { margin: 7px 0; padding-left: 22px; }
.community-markdown blockquote { margin: 9px 0; padding: 7px 11px; color: #60758c; background: #f5f8fc; border-left: 3px solid #83acd6; }
.community-markdown code { padding: 1px 5px; color: #8b3e10; background: #fff3ec; border-radius: 4px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9em; }
.community-markdown pre { max-width: 100%; padding: 11px; overflow: auto; color: #eaf3ff; background: #102641; border-radius: 7px; }
.community-markdown pre code { padding: 0; color: inherit; background: transparent; }
.community-markdown a { color: #075abd; }

.markdown-divider {
  width: 100%;
  height: 0;
  margin: 0.9em 0;
  border: 0;
  border-top: 1px solid currentColor;
  opacity: 0.22;
}

.markdown-task-item {
  display: flex;
  align-items: flex-start;
  gap: 0.48em;
  list-style: none;
}

.markdown-task-item input {
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  margin: 0.27em 0 0;
  accent-color: var(--teal-600);
  opacity: 1;
  pointer-events: none;
}

.markdown-task-item span { min-width: 0; }

.markdown-table-scroll {
  max-width: 100%;
  margin: 0.68em 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  color: var(--ink);
  background: #fff;
  border: 1px solid #d8e4ef;
  border-radius: 8px;
  scrollbar-width: thin;
  scrollbar-color: #bdcede transparent;
}

.markdown-table-scroll table {
  width: 100%;
  min-width: 460px;
  border-collapse: collapse;
  color: inherit;
  font-size: 0.92em;
  line-height: 1.55;
  white-space: normal;
}

.markdown-table-scroll th,
.markdown-table-scroll td {
  padding: 8px 10px;
  vertical-align: top;
  text-align: left;
  border-right: 1px solid #e0e9f2;
  border-bottom: 1px solid #e0e9f2;
}

.markdown-table-scroll th {
  color: #173a5d;
  background: #f1f6fb;
  font-weight: 800;
}

.markdown-table-scroll :is(th, td).is-center { text-align: center; }
.markdown-table-scroll :is(th, td).is-right { text-align: right; }
.markdown-table-scroll :is(th, td):last-child { border-right: 0; }
.markdown-table-scroll tbody tr:last-child td { border-bottom: 0; }
.community-expand-button { margin-top: 5px; padding: 2px 0; color: #075abd; background: transparent; border: 0; font: inherit; font-size: 12px; font-weight: 760; cursor: pointer; }
.community-competition-link { width: 100%; max-width: 100%; display: flex; align-items: center; gap: 7px; margin-top: 12px; padding: 7px 10px; color: #3f6387; background: #f5f9fd; border: 1px solid #dbe8f3; border-radius: 6px; font-size: 11px; text-decoration: none; }
.community-competition-link span { color: #075abd; font-weight: 850; }
.community-competition-link:hover { border-color: #8ab8ee; }
.community-inline-icon { width: 19px; height: 19px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.community-card-report { min-height: 30px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; color: #7d8b9a; background: transparent; border: 1px solid transparent; border-radius: 7px; font: inherit; font-size: 10px; font-weight: 720; cursor: pointer; }
.community-card-report .community-inline-icon { width: 15px; height: 15px; }
.community-card-report:hover { color: #b04b55; background: #fff5f6; border-color: #f0d5d8; }
.community-dynamic-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 16px; padding-top: 8px; border-top: 1px solid #e7edf3; }
.community-action-button { min-width: 0; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 10px; color: #60758b; background: transparent; border: 0; border-radius: 8px; font: inherit; font-size: 13px; font-weight: 760; cursor: pointer; }
.community-action-button + .community-action-button { border-left: 1px solid #edf1f5; border-radius: 0 8px 8px 0; }
.community-action-button:hover { color: #075abd; background: #f4f8fd; }
.community-action-button b { min-width: 1ch; color: #8190a0; font-size: 11px; font-weight: 700; }
.community-action-button.is-liked { color: #dd5361; }
.community-action-button.is-liked .community-inline-icon { fill: currentColor; }
.community-action-button:disabled { opacity: 0.5; cursor: default; }
.community-team-action { margin-top: 16px; padding-top: 14px; border-top: 1px solid #e7edf3; }
.community-team-apply-button { width: 100%; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 9px 16px; color: #fff; background: linear-gradient(135deg, #0a897f, #087268); border: 1px solid #087268; border-radius: 9px; font: inherit; font-size: 13px; font-weight: 850; cursor: pointer; box-shadow: 0 7px 16px rgba(8, 114, 104, 0.14); }
.community-team-apply-button:hover { background: linear-gradient(135deg, #087a71, #065f57); }
.community-team-apply-button:disabled { color: #64788d; background: #f3f6f8; border-color: #dbe4eb; box-shadow: none; cursor: default; opacity: 1; }
.community-inline-comments { margin: 3px -8px 0; padding: 4px 12px 12px; background: #f8fafc; border-radius: 8px; }
.community-inline-comments[hidden] { display: none; }
.community-comment-list { margin-top: 0; }
.community-comment-item { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 9px; padding: 11px 0; border-bottom: 1px solid #e9eef4; }
.community-comment-avatar .community-avatar { width: 34px; height: 34px; }
.community-comment-name { display: flex; flex-wrap: wrap; gap: 8px; color: var(--navy-800); font-size: 11px; font-weight: 820; }
.community-comment-name time { color: #929faf; font-size: 9px; font-weight: 500; }
.community-comment-body { margin-top: 3px; color: #526980; font-size: 12px; line-height: 1.7; }
.community-comment-form { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 13px; padding: 11px 12px 10px; background: #fff; border: 1px solid #d7e2ed; border-radius: 10px; box-shadow: 0 4px 12px rgba(23, 61, 98, 0.04); }
.community-comment-form label { min-width: 0; display: grid; }
.community-comment-form textarea { width: 100%; min-height: 62px; height: auto; padding: 7px 4px 10px; resize: vertical; background: transparent; border: 0; border-radius: 0; font: inherit; font-size: 12px; line-height: 1.65; }
.community-comment-form textarea:focus { outline: 2px solid #6ea6e7; outline-offset: 2px; border-color: transparent; border-radius: 5px; box-shadow: none; }
.community-comment-toolbar { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 9px; border-top: 1px solid #edf1f5; }
.community-comment-toolbar > span { color: #8a99a9; font-size: 9px; }
.community-comment-toolbar .button { min-width: 112px; min-height: 38px; height: 38px; gap: 6px; border-radius: 999px; }
.community-comment-toolbar .community-inline-icon { width: 15px; height: 15px; }
.community-pagination { margin-top: 14px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.community-pagination:empty { display: none; }
.community-profile-dialog { width: min(720px, calc(100vw - 32px)); padding: 28px; overflow-x: hidden; overflow-y: auto; }
.community-profile-header { display: flex; align-items: center; gap: 18px; padding: 4px 48px 20px 4px; border-bottom: 1px solid #e5edf5; }
.community-profile-header > img { width: 84px; height: 84px; flex: 0 0 auto; object-fit: cover; background: #eef5fd; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #cbdcea, 0 10px 24px rgba(24, 66, 108, 0.12); }
.community-profile-identity { min-width: 0; }
.community-profile-kicker { margin: 0 0 4px; color: #075abd; font-size: 9px; font-weight: 850; letter-spacing: 0.1em; }
.community-profile-header h2 { margin: 0; color: var(--navy-950); font-size: 25px; line-height: 1.3; }
.community-profile-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.community-profile-tag { min-height: 25px; display: inline-flex; align-items: center; padding: 4px 9px; color: #355c80; background: #f3f8fd; border: 1px solid #d6e5f2; border-radius: 999px; font-size: 10px; font-weight: 760; }
.community-profile-tag.is-experience { color: #08745f; background: #effaf7; border-color: #c7e9df; }
.community-profile-tag.is-goal { color: #76500e; background: #fff8e9; border-color: #edddb9; }
.community-profile-tag.is-empty { color: #7e8d9c; background: #f6f7f9; border-color: #e2e6eb; }
.community-profile-bio { margin: 11px 0 0; padding: 0; color: #536b83; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.community-profile-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.community-profile-options > button,
.community-profile-options > a { min-width: 0; min-height: 72px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px 14px; color: inherit; background: #fff; border: 1px solid #d9e5f0; border-radius: 10px; font: inherit; text-align: left; text-decoration: none; cursor: pointer; }
.community-profile-options > button:hover,
.community-profile-options > a:hover { background: #f4f9ff; border-color: #8fb9e5; box-shadow: 0 8px 18px rgba(30, 77, 122, 0.07); }
.community-profile-option-icon { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; color: #075abd; background: #eaf4ff; border-radius: 10px; }
.community-profile-option-icon .community-inline-icon { width: 20px; height: 20px; }
.community-profile-options > :last-child .community-profile-option-icon { color: #08745f; background: #eaf8f4; }
.community-profile-option-copy { min-width: 0; display: grid; gap: 4px; }
.community-profile-option-title { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.community-profile-option-title em { min-height: 20px; display: inline-flex; align-items: center; padding: 2px 7px; color: #075abd; background: #edf5ff; border-radius: 999px; font-size: 9px; font-style: normal; font-weight: 800; white-space: nowrap; }
.community-profile-options strong { color: #075abd; font-size: 12px; }
.community-profile-options small { color: var(--muted); font-size: 9px; font-weight: 500; }
.community-dynamics-dialog { width: min(820px, calc(100vw - 32px)); max-height: min(82vh, 820px); padding: 28px; overflow-y: auto; }
.community-dynamics-header { padding: 0 48px 18px 0; border-bottom: 1px solid #e3ebf3; }
.community-dynamics-back { min-height: 32px; display: inline-flex; align-items: center; gap: 6px; margin: 0 0 13px; padding: 5px 9px 5px 5px; color: #55718d; background: transparent; border: 0; border-radius: 7px; font: inherit; font-size: 10px; font-weight: 760; cursor: pointer; }
.community-dynamics-back:hover { color: #075abd; background: #edf5ff; }
.community-dynamics-back .community-inline-icon { width: 17px; height: 17px; }
.community-dynamics-summary { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 13px; align-items: center; }
.community-dynamics-summary > img { width: 56px; height: 56px; object-fit: cover; background: #eef5fd; border: 1px solid #cfdeeb; border-radius: 50%; }
.community-dynamics-summary p { margin: 0 0 3px; color: #075abd; font-size: 9px; font-weight: 850; letter-spacing: 0.08em; }
.community-dynamics-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.community-dynamics-title-row h2 { margin: 0; color: var(--navy-950); font-size: 21px; line-height: 1.35; }
.community-dynamics-title-row strong { min-height: 25px; display: inline-flex; align-items: center; justify-content: center; padding: 3px 8px; color: #075abd; background: #edf5ff; border-radius: 999px; font-size: 9px; white-space: nowrap; }
.community-dynamics-summary div > span { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }
.community-profile-dynamics { display: grid; gap: 12px; margin-top: 18px; }
.community-profile-dynamic { padding: 16px 17px; background: #fff; border: 1px solid #dce7f1; border-radius: 11px; box-shadow: 0 4px 14px rgba(20, 48, 82, 0.035); }
.community-profile-dynamic > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.community-profile-dynamic-type { min-height: 22px; display: inline-flex; align-items: center; padding: 3px 8px; color: #075abd; background: #edf5ff; border-radius: 999px; font-size: 9px; font-weight: 850; }
.community-profile-dynamic > header time { color: #8a99aa; font-size: 9px; }
.community-profile-dynamic h3 { margin: 10px 0 7px; color: var(--navy-950); font-size: 15px; line-height: 1.5; }
.community-profile-dynamic-body { max-height: 9em; overflow: hidden; color: #526980; font-size: 11px; line-height: 1.75; }
.community-profile-dynamic footer { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; margin-top: 13px; padding-top: 11px; color: #8a99aa; border-top: 1px solid #edf1f5; font-size: 9px; }
.community-profile-dynamic footer a { color: #55789f; text-decoration: none; }
.community-profile-dynamic-link { font-weight: 800; white-space: nowrap; }
.community-profile-dynamics-empty { padding: 38px 20px; text-align: center; color: var(--muted); background: #f8fafc; border: 1px dashed #cddae7; border-radius: 10px; }
.community-profile-dynamics-empty strong { color: var(--navy-800); font-size: 13px; }
.community-profile-dynamics-empty p { margin: 6px 0 0; font-size: 10px; }
.community-profile-message-form { display: grid; gap: 10px; margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--line); }
.community-profile-message-form[hidden] { display: none; }
.community-profile-message-form label { display: grid; gap: 7px; color: var(--navy-800); font-size: 12px; font-weight: 820; }
.community-profile-message-form textarea { width: 100%; padding: 10px 12px; resize: vertical; border: 1px solid #cddbea; border-radius: 7px; font: inherit; font-size: 12px; }
.community-profile-own { margin: 16px 0 0; color: var(--muted); font-size: 10px; text-align: center; }

.my-community-list,
.my-team-sections { display: grid; gap: 12px; }

.my-community-card {
  min-width: 0;
  display: grid;
  gap: 11px;
  padding: 18px 20px;
  color: inherit;
  background: linear-gradient(180deg, #ffffff, #fbfdff);
  border: 1px solid #d9e6f3;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(26, 61, 96, 0.045);
}
.my-community-card-header {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}
.my-community-card-header > div { min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.my-community-card-header strong {
  min-width: 0;
  color: var(--navy-950);
  font-size: 15px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.my-community-card-meta {
  margin: -4px 0 0;
  color: #657990;
  font-size: 11px;
  line-height: 1.55;
}
.my-community-card-footer {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.my-community-card-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.my-community-card-actions .button { min-width: 88px; }
.my-community-row {
  min-width: 0;
  min-height: 78px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  color: inherit;
  background: #fbfdff;
  border: 1px solid #dde7f1;
  border-radius: 8px;
  text-decoration: none;
}

.my-community-row > div { min-width: 0; }
.my-community-row strong { color: var(--navy-950); font-size: 14px; line-height: 1.5; }
.my-community-row p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.my-community-type { color: #075abd; font-size: 10px; font-weight: 850; white-space: nowrap; }
.my-community-offline-reason {
  width: fit-content;
  min-height: 36px;
  max-width: min(640px, 100%);
  margin: 0 !important;
  padding: 7px 12px;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: #8d3838 !important;
  background: #fff4f4;
  border: 1px solid #f0caca;
  border-radius: 8px;
  font-size: 12.5px !important;
  line-height: 1.2 !important;
}
.my-community-offline-reason strong { flex: 0 0 auto; color: var(--navy-950); font-size: inherit; }
.my-community-offline-reason span { min-width: 0; overflow: hidden; color: #b45b5b; text-overflow: ellipsis; white-space: nowrap; }
.my-community-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 0;
  min-height: 24px;
  padding: 3px 9px;
  color: #596f86;
  background: #eef3f8;
  border-radius: 999px;
  font-size: 10px;
  line-height: 1;
  font-weight: 850;
  white-space: nowrap;
}
.my-community-status.is-published,
.my-community-status.is-accepted,
.my-community-status.is-recruiting { color: #08745f; background: #e4f7f2; }
.my-community-status.is-pending { color: #9a5c00; background: #fff5db; }
.my-community-status.is-hidden,
.my-community-status.is-rejected,
.my-community-status.is-closed { color: #9b3f3f; background: #fff0f0; }

.my-team-sections > section > h2 { margin: 10px 0 12px; color: var(--navy-950); font-size: 17px; }
.my-team-leading-list { gap: 14px; }
.my-team-card { padding: 18px 20px; }
.my-team-card > .detail-link { display: inline-flex; margin-top: 12px; }
.my-team-applications { display: grid; gap: 8px; margin-top: 14px; }
.my-team-applications article { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px; background: #fff; border: 1px solid #e3eaf2; border-radius: 7px; }
.my-team-applications img { width: 38px; height: 38px; object-fit: cover; border-radius: 50%; }
.my-team-applications strong { color: var(--navy-800); font-size: 12px; }
.my-team-applications p { margin: 2px 0; color: #63768b; font-size: 10px; }
.my-team-applications small { display: block; color: var(--muted); font-size: 10px; line-height: 1.5; }
.my-team-application-actions { display: flex; align-items: center; gap: 12px; }
.my-team-application-actions .button { min-width: 66px; justify-content: center; }
.my-team-application-actions .button.is-reject { color: #a33f48; background: #fff6f7; border-color: #e9c3c8; }
.my-team-application-actions .button.is-reject:hover { color: #8f2732; background: #ffedef; border-color: #da9da5; }
.my-team-no-application { margin: 12px 0 0; color: var(--muted); font-size: 11px; }

.my-messages-layout {
  min-height: 520px;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid #dce6f0;
  border-radius: 8px;
}

.my-conversation-list { border-right: 1px solid #dce6f0; background: #f8fafc; }
.my-conversation-list > button {
  width: 100%;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: start;
  padding: 14px 12px;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #e3eaf2;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.my-conversation-list > button[aria-selected="true"] { background: #edf5ff; }
.my-conversation-list img { width: 42px; height: 42px; object-fit: cover; border-radius: 50%; }
.my-conversation-list span { min-width: 0; }
.my-conversation-list strong { display: flex; align-items: center; gap: 6px; color: var(--navy-950); font-size: 12px; }
.my-conversation-title-text { min-width: 0; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.my-conversation-list strong em { min-width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: #0b6de3; border-radius: 999px; font-size: 9px; font-style: normal; }
.my-conversation-list small,
.my-conversation-list p { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.my-conversation-list small { margin-top: 2px; color: #71849a; font-size: 9px; }
.my-conversation-list p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.my-conversation-list time { color: #8a99aa; font-size: 8px; }
.my-conversation-single-avatar { width: 42px; height: 42px; object-fit: cover; border-radius: 50%; }
.my-conversation-avatar-grid {
  width: 42px;
  height: 42px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 2px;
  padding: 3px;
  background: #eaf5ff;
  border: 1px solid #c7e2f4;
  border-radius: 12px;
}
.my-conversation-avatar-grid img {
  width: 100%;
  height: 100%;
  min-width: 0;
  object-fit: cover;
  border-radius: 8px;
}
.my-conversation-avatar-grid.count-1 {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}
.my-conversation-avatar-grid.count-2 {
  grid-template-rows: 1fr;
}
.my-conversation-avatar-grid.count-3 img:first-child {
  grid-row: 1 / 3;
}

.my-conversation-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: var(--muted); }
.my-conversation-empty h2 { margin: 0; color: var(--navy-950); font-size: 19px; }
.my-conversation-empty p { margin: 7px 0 0; font-size: 11px; }
.my-conversation-view { min-width: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.my-conversation-view > header { min-height: 62px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 14px; border-bottom: 1px solid #e1e8f0; }
.my-conversation-heading { min-width: 0; display: flex; align-items: center; gap: 10px; }
.my-conversation-heading span { min-width: 0; }
.my-conversation-heading strong,
.my-conversation-heading p { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.my-conversation-view > header strong { color: var(--navy-950); font-size: 14px; }
.my-conversation-view > header p { margin: 2px 0 0; color: var(--muted); font-size: 10px; }
.my-conversation-header-actions { min-width: max-content; display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.my-conversation-rename-form { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; }
.my-conversation-rename-form input {
  width: 152px;
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid #cfddea;
  border-radius: 8px;
  color: var(--navy-950);
  background: #fff;
  font: inherit;
  font-size: 11px;
}
.my-direct-messages { min-height: 0; max-height: 420px; display: flex; flex-direction: column; gap: 12px; padding: 18px; overflow-y: auto; background: #fbfdff; }
.my-direct-messages article { max-width: 76%; display: flex; flex-direction: column; gap: 4px; }
.my-direct-messages article.is-mine { align-self: flex-end; align-items: flex-end; }
.my-direct-messages article.is-other { align-self: flex-start; align-items: flex-start; }
.my-direct-messages article > div { padding: 9px 12px; color: #3e566e; background: #fff; border: 1px solid #dce6f0; border-radius: 10px; font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
.my-direct-messages article.is-mine > div { color: #fff; background: #2f82d0; border-color: #2f82d0; }
.my-direct-messages time { color: #8a99aa; font-size: 8px; }
.my-conversation-ended {
  padding: 13px 14px;
  color: #9b3f3f;
  background: #fff4f4;
  border-top: 1px solid #f0caca;
  font-size: 12px;
  line-height: 1.6;
}
.my-message-form { display: grid; grid-template-columns: minmax(0, 1fr) 96px; gap: 10px; align-items: stretch; padding: 12px; border-top: 1px solid #e1e8f0; }
.my-message-form label { min-width: 0; display: grid; }
.my-message-form textarea { width: 100%; min-height: 64px; height: 100%; padding: 9px 11px; resize: vertical; border: 1px solid #cfddea; border-radius: 7px; font: inherit; font-size: 12px; }
.my-message-form .button { min-height: 64px; align-self: stretch; justify-content: center; }
@media (max-width: 980px) {
  .community-layout { grid-template-columns: 1fr; }
  .community-sidebar {
    position: static;
    top: auto;
    align-self: stretch;
    max-height: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }
}

@media (max-width: 720px) {
  .community-shell { padding-top: 24px; padding-bottom: 48px; }
  .community-heading { align-items: flex-start; }
  .community-heading .button { min-width: 112px; white-space: nowrap; }
  .community-tabs { gap: 6px; padding: 5px; }
  .community-tabs button { min-height: 46px; gap: 6px; padding: 6px 8px; }
  .community-tab-icon { width: 28px; height: 28px; border-radius: 7px; }
  .community-tab-icon svg { width: 16px; height: 16px; }
  .community-tabs button strong { font-size: 13px; }
  .community-filters { grid-template-columns: 1fr; }
  .community-avatar,
  .community-official-avatar { width: 38px; height: 38px; }
  .community-team-summary { grid-template-columns: 1fr; }
  .community-sidebar { grid-template-columns: 1fr; }
  .community-dialog { padding: 22px 16px; }
  .community-form-row,
  .community-comment-form { grid-template-columns: 1fr; }
  .community-dynamic-card { grid-template-columns: 40px minmax(0, 1fr); gap: 10px; padding: 16px 13px 9px; }
  .community-dynamic-card .community-avatar,
  .community-dynamic-card .community-official-avatar { width: 40px; height: 40px; }
  .community-dynamic-title { font-size: 16px; }
  .community-dynamic-actions { overflow: visible; }
  .community-action-button { min-height: 46px; gap: 5px; padding-inline: 5px; font-size: 12px; }
  .community-action-button .community-inline-icon { width: 17px; height: 17px; }
  .community-card-report { padding-inline: 5px; }
  .community-inline-comments { margin-inline: -4px; padding-inline: 9px; }
  .community-profile-dialog,
  .community-dynamics-dialog { padding: 22px 16px; }
  .community-profile-header { align-items: flex-start; gap: 13px; padding-right: 38px; }
  .community-profile-header > img { width: 64px; height: 64px; }
  .community-profile-header h2 { font-size: 21px; }
  .community-profile-options { grid-template-columns: 1fr; }
  .community-dynamics-header { padding-right: 38px; }
  .community-dynamics-summary { grid-template-columns: 46px minmax(0, 1fr); }
  .community-dynamics-summary > img { width: 46px; height: 46px; }
  .community-dynamics-title-row h2 { font-size: 18px; }
  .community-profile-dynamic footer { grid-template-columns: 1fr auto; }
  .community-profile-dynamic-link { grid-column: 1 / -1; justify-self: start; }
  .community-comment-toolbar { align-items: flex-end; }
  .community-comment-toolbar .button { min-width: 106px; min-height: 38px; height: 38px; }
  .my-community-row { grid-template-columns: minmax(0, 1fr) auto; }
  .my-community-row > .detail-link { grid-column: 1 / -1; justify-self: start; }
  .my-team-applications article { grid-template-columns: 34px minmax(0, 1fr); }
  .my-team-application-actions { grid-column: 2; }
  .my-messages-layout { grid-template-columns: 1fr; min-height: 0; }
  .my-conversation-list { border-right: 0; }
  .my-conversation-view { min-height: 500px; }
  .my-conversation-view > header { grid-template-columns: 1fr; align-items: flex-start; }
  .my-conversation-header-actions { width: 100%; min-width: 0; justify-content: flex-start; flex-wrap: wrap; }
  .my-conversation-rename-form { flex: 1 1 220px; }
  .my-conversation-rename-form label { flex: 1 1 auto; }
  .my-conversation-rename-form input { width: 100%; }
  .my-message-form { grid-template-columns: 1fr; }
  .my-message-form .button { min-height: 46px; }
}

@media (max-width: 820px) {
  .my-auth-gate { min-height: 0; }
}

.my-list {
  display: grid;
  gap: 14px;
}

.my-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.my-competition-card {
  min-width: 0;
  min-height: 208px;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 10px;
  padding: 16px;
  color: inherit;
  background: linear-gradient(180deg, #fbfdff, #f7fbff);
  border: 1px solid #d8e5f1;
  border-radius: 8px;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(32, 69, 105, 0.06);
}

.my-competition-card:hover {
  border-color: #a5c5ed;
  box-shadow: 0 16px 32px rgba(32, 69, 105, 0.1);
}

.my-card-topline {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #64778d;
  font-size: 11px;
  font-weight: 720;
}

.my-card-left-meta {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 6px;
}

.my-card-level {
  flex: 0 0 auto;
  padding: 3px 8px;
  color: #075abd;
  background: #edf5ff;
  border: 1px solid #c9ddf5;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
}

.my-registration-status {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: 8px;
  padding: 3px 8px;
  overflow: hidden;
  color: #8a5708;
  background: #fff7e4;
  border: 1px solid #efd49b;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.my-registration-status i {
  width: 5px;
  height: 5px;
  flex: 0 0 auto;
  background: #d59612;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(213, 150, 18, 0.12);
}

.my-registration-status.is-open {
  color: #087852;
  background: #e8f8ef;
  border-color: #9bdcba;
}

.my-registration-status.is-open i {
  background: #14a66a;
  box-shadow: 0 0 0 2px rgba(20, 166, 106, 0.13);
}

.my-registration-status.is-waiting,
.my-registration-status.is-closed {
  color: #8a5708;
  background: #fff7e4;
  border-color: #efd49b;
}

.my-registration-status.is-waiting i,
.my-registration-status.is-closed i {
  background: #d59612;
  box-shadow: 0 0 0 2px rgba(213, 150, 18, 0.12);
}

.my-card-topline > span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.my-competition-card strong {
  min-width: 0;
  color: var(--navy-950);
  font-size: 16px;
  line-height: 1.45;
}

.my-registration-status strong {
  display: inline-flex;
  min-width: 0;
  color: inherit;
  font: inherit;
}

.my-competition-card p {
  margin: 0;
  overflow: hidden;
  color: #52677f;
  display: -webkit-box;
  font-size: 13px;
  line-height: 1.7;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.my-competition-item,
.my-chat-item {
  display: grid;
  gap: 11px;
  padding: 18px;
  color: inherit;
  background: #f9fbfd;
  border: 1px solid #dce6f0;
  border-radius: 8px;
  text-decoration: none;
}

.my-competition-item:hover,
.my-chat-item:hover { border-color: #a9c6eb; background: #f5faff; }

.my-competition-item strong,
.my-chat-item strong { color: var(--navy-950); font-size: 15px; line-height: 1.45; }

.my-item-meta {
  color: #64778d;
  font-size: 12px;
  font-weight: 720;
}

.my-item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.my-item-actions .button { min-height: 34px; padding: 6px 10px; font-size: 12px; }
.my-item-actions .favorite-star-button-row {
  width: auto;
  min-width: 96px;
  min-height: 34px;
  padding: 6px 10px;
}

.my-item-actions-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(122px, 1fr));
  width: 100%;
}

.my-item-actions-pair .button,
.my-item-actions-pair .favorite-star-button-row {
  width: 100%;
  min-width: 0;
  min-height: 34px;
  padding: 6px 10px;
  justify-content: center;
  font-size: 12px;
}

.my-item-actions-pair .favorite-star-button-row svg {
  width: 15px;
  height: 15px;
}

.my-chat-list-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  width: 100%;
}

.my-chat-list-actions .button {
  width: 100%;
  min-width: 0;
  min-height: 34px;
  justify-content: center;
  padding: 6px 10px;
  font-size: 12px;
}

.my-card-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 16px;
}

.my-card-pagination button {
  min-width: 78px;
  min-height: 34px;
  padding: 0 12px;
  color: #075abd;
  background: #fff;
  border: 1px solid #b9d1f0;
  border-radius: 6px;
  font: inherit;
  font-size: 12px;
  font-weight: 820;
  cursor: pointer;
}

.my-card-pagination button:disabled {
  color: #9baabd;
  background: #f4f7fb;
  cursor: default;
}

.my-card-pagination span {
  min-width: 46px;
  color: #5d7087;
  font-size: 12px;
  font-weight: 780;
  text-align: center;
}

.my-registration-calendar {
  display: grid;
  gap: 18px;
  margin-top: 22px;
  padding-top: 22px;
  background: transparent;
  border: 0;
  border-top: 1px solid #dce7f1;
  border-radius: 0;
}

.my-registration-calendar > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.my-registration-calendar h2 {
  margin: 0;
  color: var(--navy-950);
  font-size: 21px;
  letter-spacing: -0.01em;
}

.my-registration-calendar p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.my-registration-calendar > header > span {
  flex: 0 0 auto;
  padding: 4px 9px;
  color: #805200;
  background: #fff7df;
  border: 1px solid #efd28c;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 820;
}

.my-calendar-month-switcher {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
  overflow-x: auto;
  background: #f3f7fb;
  border: 1px solid #dce7f1;
  border-radius: 10px;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}

.my-calendar-month-switcher::-webkit-scrollbar { display: none; }

.my-calendar-month-switcher button {
  position: relative;
  min-width: 0;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 7px 5px;
  color: #546a82;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  font: inherit;
  cursor: pointer;
  scroll-snap-align: center;
  transition: color 150ms ease, background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.my-calendar-month-switcher button:hover {
  color: #075abd;
  background: #fff;
  border-color: #c9dced;
}

.my-calendar-month-switcher button:focus-visible {
  outline: 3px solid rgba(11, 109, 227, 0.2);
  outline-offset: 1px;
}

.my-calendar-month-switcher button.is-selected {
  color: #fff;
  background: #0b6de3;
  border-color: #0b6de3;
  box-shadow: 0 7px 16px rgba(11, 109, 227, 0.2);
}

.my-calendar-month-switcher button strong {
  font-size: 13px;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}

.my-calendar-month-switcher button em {
  min-width: 17px;
  height: 17px;
  display: inline-grid;
  place-items: center;
  color: #53708e;
  background: #fff;
  border: 1px solid #d5e3ef;
  border-radius: 999px;
  font-size: 9px;
  font-style: normal;
  font-weight: 850;
  line-height: 1;
}

.my-calendar-month-switcher button.is-selected em {
  color: #075abd;
  border-color: #fff;
}

.my-calendar-month-switcher button > i {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 5px;
  height: 5px;
  background: #0b6de3;
  border-radius: 999px;
}

.my-calendar-month-switcher button.is-selected > i { background: #fff; }

.my-calendar-month-panel {
  min-width: 0;
  min-height: 128px;
  display: grid;
  grid-template-columns: 184px minmax(0, 1fr);
  gap: 20px;
  padding: 18px;
  background: linear-gradient(180deg, #fff, #f9fcff);
  border: 1px solid #d5e3ef;
  border-radius: 10px;
}

.my-calendar-month-panel.is-open { border-color: #afe1c7; }

.my-calendar-month-panel.is-empty {
  min-height: 104px;
  grid-template-columns: 1fr;
  align-items: center;
}

.my-calendar-month-panel > header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-right: 20px;
  border-right: 1px solid #e1ebf3;
}

.my-calendar-month-panel.is-empty > header {
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding-right: 0;
  border-right: 0;
}

.my-calendar-month-panel h3 {
  margin: 0;
  color: var(--navy-950);
  font-size: 28px;
  line-height: 1;
  letter-spacing: -0.02em;
}

.my-calendar-month-panel > header p {
  margin-top: 8px;
  color: #73869b;
  font-size: 11px;
  font-weight: 760;
}

.my-calendar-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 20px;
  padding: 0;
  color: #8c5c0d;
  background: transparent;
  border: 0;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
  white-space: nowrap;
}

.my-calendar-status-pill i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  background: #d59612;
  border-radius: 999px;
  box-shadow: 0 0 0 3px rgba(213, 150, 18, 0.12);
}

.my-calendar-status-pill.is-open {
  color: #087852;
  background: transparent;
  border-color: transparent;
}

.my-calendar-status-pill.is-open i {
  background: #11865d;
  box-shadow: 0 0 0 3px rgba(17, 134, 93, 0.12);
}

.my-calendar-status-pill.is-empty {
  color: #71859a;
  background: transparent;
  border-color: transparent;
}

.my-calendar-status-pill.is-empty i {
  background: #9aabba;
  box-shadow: none;
}

.my-calendar-event-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-content: center;
}

.my-calendar-event-row {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 188px;
  padding: 13px;
  color: var(--navy-950);
  background: #fff;
  border: 1px solid #d9e6f1;
  border-radius: 7px;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.my-calendar-event-row:hover {
  border-color: #9fc5ee;
  box-shadow: 0 8px 20px rgba(37, 112, 185, 0.09);
}

.my-calendar-event-name {
  min-width: 0;
  display: -webkit-box;
  overflow: hidden;
  color: var(--navy-950);
  font-size: 13px;
  font-weight: 840;
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-decoration: none;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.my-calendar-event-name:hover { color: var(--blue-700); }

.my-calendar-more {
  color: #8c620f;
  font-size: 11px;
  font-weight: 760;
}
.my-calendar-more { color: #6e8194; }

.my-calendar-event-latest {
  min-width: 0;
  padding: 9px 10px;
  background: #f5f8fc;
  border-radius: 6px;
}

.my-calendar-event-latest strong {
  display: block;
  margin-bottom: 4px;
  color: #47637f;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.04em;
}

.my-calendar-event-latest p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: #52677e;
  font-size: 11.5px;
  line-height: 1.55;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

.my-calendar-event-actions {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  justify-self: stretch;
  gap: 6px;
  margin-top: auto;
}

.my-calendar-event-actions .button {
  width: 100%;
  min-width: 0;
  padding-right: 7px;
  padding-left: 7px;
  white-space: nowrap;
}

.my-calendar-more { grid-column: 1 / -1; }

.my-chat-recommendation-empty {
  margin: 0;
  color: #7a8b9f;
  font-size: 12px;
}

.my-chat-recommendation-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.my-chat-recommendation-strip a {
  min-width: 0;
  max-width: 260px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  color: #1f4968;
  background: #eff7fb;
  border: 1px solid #c7deee;
  border-radius: 999px;
  text-decoration: none;
}

.my-chat-recommendation-strip a:hover { color: #075abd; background: #edf5ff; border-color: #9fc2ec; }
.my-chat-recommendation-strip span { color: #0c756d; font-size: 10px; font-weight: 850; white-space: nowrap; }
.my-chat-recommendation-strip strong {
  min-width: 0;
  overflow: hidden;
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.my-recommendation-meta {
  width: fit-content;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  overflow: hidden;
  color: #145b78;
  background: #edf8fb;
  border: 1px solid #d5edf3;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 820;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.my-settings-sections {
  display: grid;
  gap: 24px;
}

.my-settings-section {
  display: grid;
  gap: 14px;
}

.my-settings-section + .my-settings-section {
  padding-top: 22px;
  border-top: 1px solid #e2ebf4;
}

.my-settings-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.my-settings-section-heading h2 {
  margin: 0;
  color: var(--navy-950);
  font-size: 18px;
  line-height: 1.35;
}

.my-settings-section-heading p {
  margin: 0;
  color: #64778d;
  font-size: 12px;
  line-height: 1.65;
}

.my-settings-form {
  display: grid;
  gap: 13px;
  max-width: none;
}

.my-settings-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.my-settings-row-single {
  grid-template-columns: 1fr;
}

.my-settings-row-with-action {
  align-items: end;
}

.my-settings-row-with-action .button {
  width: 100%;
  min-height: 42px;
}

.my-settings-actions-row {
  display: grid;
  grid-template-columns: 1fr;
}

.my-settings-actions-row .button {
  width: 100%;
  min-height: 42px;
}

.my-settings-form label {
  display: grid;
  gap: 6px;
  color: #536a82;
  font-size: 12px;
  font-weight: 750;
}

.my-settings-form input,
.my-settings-form select,
.my-settings-form textarea {
  min-height: 42px;
  padding: 9px 11px;
  color: var(--ink);
  background: #f8fbfe;
  border: 1px solid #d2deea;
  border-radius: 8px;
  font: inherit;
  font-size: 14px;
}

.my-settings-form input[readonly] {
  color: #66798d;
  background: #eef4fa;
  cursor: default;
}

.my-settings-form textarea {
  min-height: 112px;
  line-height: 1.65;
  resize: vertical;
}

.my-settings-bio {
  width: 100%;
}

.my-password-form {
  max-width: none;
}

.my-avatar-field {
  min-width: 0;
}

.my-avatar-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  max-width: 100%;
  padding: 3px 2px 7px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.my-avatar-grid label {
  flex: 0 0 auto;
  display: block;
  cursor: pointer;
}
.my-avatar-grid input { position: absolute; opacity: 0; pointer-events: none; }
.my-avatar-grid img {
  width: 76px;
  height: 76px;
  object-fit: cover;
  border: 2px solid transparent;
  border-radius: 50%;
}
.my-avatar-grid input:checked + img { border-color: #075abd; box-shadow: 0 0 0 3px rgba(11, 109, 227, 0.12); }

.my-chat-view {
  display: grid;
  gap: 14px;
  padding: 16px;
  background:
    linear-gradient(180deg, rgba(247, 251, 255, 0.9), rgba(250, 252, 255, 0.96)),
    #f8fbfe;
  border: 1px solid #dce6f0;
  border-radius: 8px;
}

.my-chat-message {
  width: min(78%, 720px);
  display: grid;
  gap: 5px;
}

.my-chat-message.is-user {
  justify-self: end;
  justify-items: end;
}

.my-chat-message.is-assistant {
  justify-self: start;
  justify-items: start;
}

.my-chat-message.has-recommendations {
  width: min(100%, 1120px);
}

.my-chat-message-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #6f8094;
  font-size: 11px;
  font-weight: 760;
}

.my-chat-message-meta span {
  color: #31506d;
}

.my-chat-message-meta time {
  font: inherit;
}

.my-chat-bubble {
  max-width: 100%;
  padding: 12px 14px;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  line-height: 1.75;
  white-space: pre-wrap;
  box-shadow: 0 10px 22px rgba(22, 52, 86, 0.06);
}

.my-chat-message.is-user .my-chat-bubble {
  color: #fff;
  background: #2f8ed8;
  border: 1px solid #2f8ed8;
  border-radius: 16px 16px 4px 16px;
}

.my-chat-message.is-assistant .my-chat-bubble {
  color: var(--ink);
  background: #fff;
  border: 1px solid #d8e5f1;
  border-radius: 16px 16px 16px 4px;
}

.my-chat-bubble :is(p, ul, ol, blockquote, pre, h3, h4, h5, h6),
.admin-student-message-bubble :is(p, ul, ol, blockquote, pre, h3, h4, h5, h6) { margin: 0; }
.my-chat-bubble :is(p, ul, ol, blockquote, pre) + :is(p, ul, ol, blockquote, pre, h3, h4, h5, h6),
.admin-student-message-bubble :is(p, ul, ol, blockquote, pre) + :is(p, ul, ol, blockquote, pre, h3, h4, h5, h6) { margin-top: 0.58em; }
.my-chat-bubble :is(h3, h4, h5, h6),
.admin-student-message-bubble :is(h3, h4, h5, h6) {
  color: inherit;
  font-size: 1.02em;
  line-height: 1.45;
}
.my-chat-bubble :is(ul, ol),
.admin-student-message-bubble :is(ul, ol) { padding-left: 1.32em; }
.my-chat-bubble li + li,
.admin-student-message-bubble li + li { margin-top: 0.22em; }
.my-chat-bubble blockquote,
.admin-student-message-bubble blockquote {
  padding-left: 0.78em;
  color: #53677d;
  border-left: 3px solid #c8d9ea;
}
.my-chat-bubble code,
.admin-student-message-bubble code {
  padding: 0.08em 0.32em;
  color: #0f4d7e;
  background: #eef6ff;
  border: 1px solid #d6e5f5;
  border-radius: 4px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size: 0.92em;
}
.my-chat-bubble pre,
.admin-student-message-bubble pre {
  max-width: min(100%, 720px);
  padding: 9px 10px;
  overflow: auto;
  color: #17324d;
  background: #f4f8fc;
  border: 1px solid #d7e4f0;
  border-radius: 8px;
}
.my-chat-bubble pre code,
.admin-student-message-bubble pre code {
  display: block;
  padding: 0;
  background: transparent;
  border: 0;
  white-space: pre;
}
.my-chat-bubble a,
.admin-student-message-bubble a {
  color: #075abd;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.my-chat-message.is-user .my-chat-bubble :is(a, code),
.admin-student-message.is-student .admin-student-message-bubble :is(a, code) { color: #fff; }
.my-chat-message.is-user .my-chat-bubble code,
.admin-student-message.is-student .admin-student-message-bubble code {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.26);
}
.my-chat-message.is-user .my-chat-bubble blockquote,
.admin-student-message.is-student .admin-student-message-bubble blockquote {
  color: rgba(255, 255, 255, 0.88);
  border-left-color: rgba(255, 255, 255, 0.45);
}

.my-message-recommendations {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(var(--recommendation-count, 4), minmax(0, 1fr));
  gap: 10px;
  margin-top: 5px;
}

.my-message-recommendation-card {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 12px 13px;
  color: inherit;
  background: #fff;
  border: 1px solid #d7e5f0;
  border-radius: 8px;
  text-decoration: none;
  box-shadow: 0 10px 20px rgba(32, 69, 105, 0.06);
}

.my-message-recommendation-card:hover {
  border-color: #9fc2ec;
  background: #f7fbff;
}

.my-message-recommendation-card strong {
  min-width: 0;
  color: var(--navy-950);
  font-size: 13px;
  line-height: 1.45;
}

.my-message-recommendation-card p {
  margin: 0;
  overflow: hidden;
  color: #5a6d82;
  display: -webkit-box;
  font-size: 12px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.my-empty { padding: 28px; color: var(--muted); background: #f9fbfd; border: 1px dashed #cfdae6; border-radius: 8px; text-align: center; }

@media (max-width: 820px) {
  .my-layout {
    grid-template-columns: 1fr;
    gap: 14px;
    width: min(calc(100% - 32px), var(--shell));
    margin: 24px auto 48px;
  }

  .my-sidebar {
    position: static;
    top: auto;
    display: grid;
    gap: 8px;
    overflow: visible;
  }

  .my-sidebar-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .my-sidebar-tabs button {
    min-width: 0;
    padding-inline: 6px;
    text-align: center;
    white-space: nowrap;
  }

  .my-sidebar-profile-card {
    gap: 8px;
    padding: 14px 12px;
  }

  .my-sidebar-avatar {
    width: 66px;
    height: 66px;
  }

  .my-sidebar-name {
    font-size: 18px;
  }

  .my-panel {
    min-height: 360px;
    padding: 16px;
  }

  .my-panel-heading {
    display: grid;
    gap: 12px;
  }

  .my-panel-heading h1,
  .my-panel-heading h2 { font-size: 24px; }

  .my-panel-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .my-community-card-footer {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .my-community-card-actions {
    justify-content: flex-start;
  }

  .my-chat-action-button,
  .my-return-button {
    width: 100%;
    min-width: 0;
  }

  .my-competition-item,
  .my-chat-item {
    padding: 14px;
  }

  .my-card-grid {
    grid-template-columns: 1fr;
  }

  .my-competition-card {
    min-height: 0;
    padding: 14px;
  }

  .my-competition-item strong,
  .my-competition-card strong,
  .my-chat-item strong,
  .my-chat-bubble {
    overflow-wrap: anywhere;
  }

  .my-item-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    width: 100%;
  }

  .my-item-actions .button {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    justify-content: center;
    white-space: normal;
  }

  .my-item-actions .favorite-star-button-row {
    width: 100%;
    min-width: 0;
    min-height: 38px;
  }

  .my-item-actions-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .my-chat-list-actions {
    grid-template-columns: 1fr;
  }

  .my-registration-calendar > header {
    display: grid;
  }

  .my-calendar-month-switcher {
    display: flex;
    scroll-snap-type: inline proximity;
  }

  .my-calendar-month-switcher button {
    flex: 0 0 62px;
  }

  .my-calendar-month-panel {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px;
  }

  .my-calendar-month-panel > header {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 0 0 13px;
    border-right: 0;
    border-bottom: 1px solid #e1ebf3;
  }

  .my-calendar-month-panel.is-empty > header {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .my-calendar-event-list {
    grid-template-columns: 1fr;
  }

  .my-calendar-event-row {
    min-height: 0;
  }

  .my-chat-recommendation-strip a {
    max-width: 100%;
  }

  .my-chat-view {
    padding: 12px;
  }

  .my-chat-message {
    width: min(92%, 620px);
  }

  .my-message-recommendations {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .my-settings-section-heading {
    display: grid;
    gap: 4px;
  }

  .my-settings-row,
  .my-settings-row-single,
  .my-settings-row-with-action {
    grid-template-columns: 1fr;
  }

  .my-avatar-grid {
    padding-bottom: 9px;
  }

  .my-avatar-grid img {
    width: 66px;
    height: 66px;
  }
}

.direction-section { background: transparent; }
.direction-label { color: #56677d; font-size: 11px; font-weight: 750; }
.current-section {
  color: var(--ink);
  background: linear-gradient(180deg, #eef6fb, #edf4fb 48%, #f5f8fc);
  border-block-color: #d6e5f0;
}
.current-section h2 { color: var(--navy-950); font-size: clamp(29px, 3.6vw, 43px); }
.current-section .section-heading p { color: var(--muted); font-size: 14px; }
.current-section .icon-button { color: var(--navy-800); background: #fff; border-color: #b6cce0; }
.current-section .icon-button:hover { color: var(--blue-700); background: #fff; border-color: #86add4; }
.open-carousel { scrollbar-color: #99b3c9 transparent; }
.open-slide {
  color: var(--ink);
  background: rgba(255, 255, 255, 0.94);
  border-color: #c7d9e7;
  box-shadow: 0 14px 34px rgba(26, 68, 103, 0.08);
}
.compact-open-carousel { grid-auto-columns: minmax(340px, 405px); gap: 18px; }
.compact-open-carousel .open-slide { min-height: 430px; padding: 28px; }
.compact-open-carousel .open-slide h3 {
  min-height: 57px;
  margin: 18px 0 10px;
  color: var(--navy-950);
  font-size: 22px;
  line-height: 1.28;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.compact-open-carousel .open-edition { color: #176f70; }
.compact-open-carousel .open-summary { min-height: 48px; color: #43566e; font-size: 13px; -webkit-line-clamp: 3; }
.compact-open-carousel .open-window { border-top-color: #d8e2eb; }
.compact-open-carousel .open-window strong { color: var(--navy-950); }
.compact-open-carousel .open-window p {
  min-height: 7em;
  color: #43566e;
  line-height: 1.75;
  -webkit-line-clamp: 4;
}
.compact-open-carousel .card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.compact-open-carousel .card-actions .button { width: 100%; min-height: 42px; }
.open-slide .button-official { color: #075abd; background: #edf5ff; border-color: #9fc1eb; }
.open-slide .button-resource { color: #8a4b00; background: #fff7e8; border-color: #ecc58d; }
.open-slide .button-disabled { color: #8b96a5; background: #f1f4f7; border-color: #d9e0e7; }

.association-strip {
  padding: 17px 0;
  background: #f2f7fb;
  border-top: 1px solid #d8e7ef;
}
.association-strip-inner {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
}
.association-strip img { width: 52px; height: 52px; object-fit: contain; background: #fff; border: 1px solid #d8e3ee; border-radius: 10px; }
.association-strip-copy strong { display: block; color: var(--navy-950); font-size: 15px; }
.association-strip-copy p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.association-strip-actions { display: block; }
.association-strip-actions .button { min-height: 36px; padding: 8px 13px; }

.site-footer { border-top: 1px solid #d8e7ef; }
.footer-catalog-link.footer-catalog-pdf { background: transparent; border-color: #5d718e; }
.footer-catalog-link.footer-catalog-pdf:hover { background: rgba(255, 255, 255, 0.07); border-color: #8ba0bd; }
.footer-catalog-pdf .footer-pdf-mark { background: rgba(255, 255, 255, 0.1); }
.footer-notice b { color: #fff; }

.share-dialog {
  width: min(calc(100% - 28px), 510px);
  max-height: calc(100vh - 40px);
  padding: 30px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #cbd9e6;
  border-radius: 18px;
  box-shadow: 0 28px 90px rgba(7, 26, 56, 0.25);
}
.share-dialog::backdrop { background: rgba(7, 26, 56, 0.58); backdrop-filter: blur(4px); }
.share-dialog-close {
  position: absolute;
  top: 17px;
  right: 18px;
}
.share-dialog-heading { padding-right: 42px; }
.share-dialog-heading h2 { margin: 2px 0 7px; font-size: 27px; }
.share-dialog-heading > p:last-child { margin-bottom: 19px; color: var(--muted); font-size: 12px; }
.share-qr { width: min(250px, 72vw); height: auto; display: block; margin: 0 auto 18px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.share-url-field { display: grid; gap: 6px; color: var(--navy-800); font-size: 12px; font-weight: 700; }
.share-url-field input { width: 100%; padding: 10px 12px; color: #526178; background: #f7f9fb; border: 1px solid var(--line); border-radius: 8px; font-size: 12px; }
.share-dialog-actions { margin-top: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.share-dialog-actions .button { width: 100%; }

.ai-hero { background: linear-gradient(145deg, #eef8f8, #f2f4ff); }
.ai-hero-inner { grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr); gap: 42px; }
.ai-hero-copy { max-width: 780px; }
.ai-hero-copy > .button { margin-top: 7px; }
.ai-map-section { background: rgba(255, 255, 255, 0.7); }
.ai-difficulty-tabs { gap: 10px; background: transparent; border: 0; border-radius: 0; overflow: visible; }
.ai-difficulty-tabs button {
  min-height: 64px;
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 10px 16px;
  text-align: center;
  border: 1px solid;
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(24, 58, 91, 0.06);
}
.ai-difficulty-tabs button:nth-child(1) { color: #176b55; background: #eaf8f2; border-color: #a9d9c7; }
.ai-difficulty-tabs button:nth-child(2) { color: #075abd; background: #edf5ff; border-color: #afccef; }
.ai-difficulty-tabs button:nth-child(3) { color: #6745a5; background: #f4effd; border-color: #d1c2ed; }
.ai-difficulty-tabs button:nth-child(1)[aria-selected="true"] { color: #fff; background: #176b55; border-color: #176b55; }
.ai-difficulty-tabs button:nth-child(2)[aria-selected="true"] { color: #fff; background: #075abd; border-color: #075abd; }
.ai-difficulty-tabs button:nth-child(3)[aria-selected="true"] { color: #fff; background: #6745a5; border-color: #6745a5; }
.ai-difficulty-tabs button strong,
.ai-difficulty-tabs button[aria-selected="true"] strong { color: inherit; }
.ai-difficulty-tabs button small { margin-top: 2px; color: inherit; opacity: 0.78; }
.ai-event-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ai-event-actions > div { display: flex; flex-wrap: wrap; gap: 7px; }
.ai-event-actions .detail-link { margin-left: auto; padding: 0; border: 0; white-space: nowrap; }
.compact-open-carousel .open-slide > .open-detail-link {
  min-height: auto;
  align-self: flex-end;
  margin-top: 10px;
  padding: 0;
  color: var(--blue-700);
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: 11px;
  text-decoration: none;
}
.compact-open-carousel .open-slide > .open-detail-link:hover { color: var(--navy-950); background: transparent; }
.ai-club-eyebrow {
  width: fit-content;
  margin-bottom: 15px;
  padding-left: 11px;
  color: #104e70;
  border-left: 4px solid #2b9188;
  font-size: 18px;
  letter-spacing: 0.08em;
}
.ai-join-card {
  color: var(--ink);
  background: linear-gradient(145deg, #f1f5ff, #eafaf6);
  border: 1px solid #c5dce6;
  box-shadow: 0 18px 48px rgba(23, 69, 96, 0.09);
}
.ai-join-card h3 { color: var(--navy-950); }
.ai-join-card p { color: var(--muted); }
.ai-join-card .button { width: 100%; }

@media (max-width: 900px) {
  .home-quick-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-hero-inner { grid-template-columns: 1fr; gap: 28px; }
  .association-strip-inner { grid-template-columns: 64px minmax(0, 1fr); }
  .association-strip-actions { grid-column: 1 / -1; width: 100%; display: flex; justify-content: flex-start; align-items: center; gap: 16px; }
}

@media (max-width: 720px) {
  .home-hero { width: min(calc(100% - 24px), 1320px); min-height: calc(100svh - 82px); margin-top: 12px; padding: 34px 20px 48px; border-radius: 18px; }
  .home-quick-links { grid-template-columns: 1fr; }
  .home-quick-links a { min-height: 72px; }
  .home-catalog-download { width: fit-content; }
  .compact-open-carousel { grid-auto-columns: minmax(285px, calc(100% - 18px)); }
  .compact-open-carousel .open-slide { min-height: 420px; padding: 24px; }
  .association-strip-inner { grid-template-columns: 54px minmax(0, 1fr); gap: 14px; }
  .association-strip img { width: 54px; height: 54px; }
  .association-strip-copy strong { font-size: 16px; }
  .association-strip-actions { display: grid; justify-items: stretch; }
  .association-strip-actions .button { width: 100%; }
  .share-dialog { padding: 26px 20px 22px; }
  .share-dialog-actions { grid-template-columns: 1fr; }
  .ai-event-actions { align-items: flex-start; flex-direction: column; }
  .ai-event-actions .detail-link { margin-left: 0; }
}

/* restricted maintenance workspace */
.admin-transport-warning {
  max-width: 760px;
  margin-bottom: 24px;
  padding: 20px 22px;
  color: #6e3b00;
  background: #fff7e8;
  border: 1px solid #e8c17f;
  border-radius: var(--radius-md);
}
.admin-transport-warning strong { color: #805000; }
.admin-transport-warning p { margin: 5px 0 0; }
.admin-session-bar { margin-bottom: 12px; display: flex; align-items: center; justify-content: flex-end; gap: 12px; color: var(--muted); font-size: 11px; }
.admin-session-bar p { margin: 0; }
.admin-session-bar strong { color: var(--navy-950); }
.admin-session-bar .detail-link { padding: 0; background: transparent; border: 0; cursor: pointer; }
.admin-section-tabs {
  margin-bottom: 20px;
  display: grid;
  grid-template-columns: repeat(11, minmax(0, 1fr));
  gap: 5px;
  padding: 5px;
  background: #e8eef5;
  border-radius: 10px;
}
.admin-section-tabs button {
  width: 100%;
  min-width: 0;
  padding: 9px 14px;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: 7px;
  cursor: pointer;
  font-weight: 750;
}
.admin-section-tabs button[aria-selected="true"] { color: var(--navy-950); background: #fff; box-shadow: 0 2px 8px rgba(12, 37, 70, 0.08); }
.admin-section-tabs button:disabled { opacity: 0.45; cursor: not-allowed; }
.admin-mobile-section-control { display: none; }
.admin-section-heading {
  margin-bottom: 18px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
}
.admin-section-heading h2 { margin: 3px 0 6px; font-size: clamp(24px, 3vw, 34px); }
.admin-section-heading p:last-child { max-width: 780px; margin: 0; color: var(--muted); }
.admin-overview-destinations { margin-bottom: 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.admin-overview-destination { --destination-tone: #075abd; --destination-tint: #eef6ff; min-width: 0; min-height: 228px; position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: stretch; padding: 20px; text-align: left; color: var(--ink); background: radial-gradient(circle at 92% 6%, color-mix(in srgb, var(--destination-tone) 10%, transparent), transparent 37%), linear-gradient(155deg, #fff 0%, color-mix(in srgb, var(--destination-tint) 72%, #fff) 100%); border: 1px solid color-mix(in srgb, var(--destination-tone) 17%, #d5e1ed); border-radius: 17px; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 12px 28px rgba(19, 53, 86, 0.07); transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease; }
.admin-overview-destination:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--destination-tone) 42%, #d5e1ed); box-shadow: inset 0 1px 0 #fff, 0 18px 34px rgba(19, 53, 86, 0.12); }
.admin-overview-destination:focus-visible { outline: 3px solid color-mix(in srgb, var(--destination-tone) 32%, transparent); outline-offset: 3px; }
.admin-overview-destination-heading { display: flex; align-items: center; gap: 10px; color: var(--navy-950); }
.admin-overview-destination-heading > b { width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center; color: var(--destination-tone); background: color-mix(in srgb, var(--destination-tone) 9%, #fff); border: 1px solid color-mix(in srgb, var(--destination-tone) 18%, #dce7f1); border-radius: 10px; font-size: 10px; letter-spacing: 0.06em; }
.admin-overview-destination-heading > strong { min-width: 0; font-size: 14px; line-height: 1.35; }
.admin-overview-destination-value { margin-top: 22px; display: flex; align-items: baseline; gap: 6px; color: var(--navy-950); }
.admin-overview-destination-value > strong { font-size: clamp(38px, 3.3vw, 52px); font-variant-numeric: tabular-nums; line-height: 0.95; }
.admin-overview-destination-value > small { color: var(--muted); font-size: 13px; font-weight: 700; }
.admin-overview-destination-note { min-height: 3.1em; margin-top: 14px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.admin-overview-destination-breakdown { margin: 14px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.admin-overview-destination-breakdown.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-overview-destination-breakdown > span { min-width: 0; padding: 6px 7px; display: flex; align-items: baseline; justify-content: space-between; gap: 4px; color: var(--muted); background: rgba(255, 255, 255, 0.78); border: 1px solid color-mix(in srgb, var(--destination-tone) 14%, #dce7f1); border-radius: 8px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85); }
.admin-overview-destination-breakdown small { overflow: hidden; font-size: 9px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.admin-overview-destination-breakdown strong { color: var(--destination-tone); font-size: 12px; font-variant-numeric: tabular-nums; }
.admin-overview-destination-action { margin-top: auto; padding-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--destination-tone); border-top: 1px solid color-mix(in srgb, var(--destination-tone) 18%, transparent); font-size: 11px; font-weight: 800; }
.admin-overview-destination-action > b { font-size: 16px; line-height: 1; transition: transform 150ms ease; }
.admin-overview-destination:hover .admin-overview-destination-action > b { transform: translateX(3px); }
.admin-overview-destination.tone-2 { --destination-tone: #744fb2; --destination-tint: #f6f1ff; }
.admin-overview-destination.tone-3 { --destination-tone: #c56b10; --destination-tint: #fff8ed; }
.admin-overview-destination.tone-4 { --destination-tone: #07877f; --destination-tint: #eefaf8; }
.admin-overview-destination.tone-5 { --destination-tone: #506579; --destination-tint: #f1f5f8; }
.admin-overview-destination.tone-6 { --destination-tone: #8a4f65; --destination-tint: #fbf2f6; }
.admin-overview-destination.tone-7 { --destination-tone: #2f6690; --destination-tint: #eef7fb; }
.admin-overview-level-destination,
.admin-overview-ai-destination { cursor: default; }
.admin-overview-level-breakdown { margin: 11px 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; }
.admin-overview-ai-breakdown { margin: 11px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.admin-overview-level-breakdown button,
.admin-overview-ai-breakdown button { min-width: 0; min-height: 34px; padding: 6px 7px; display: flex; align-items: center; justify-content: space-between; gap: 5px; color: var(--muted); background: rgba(255, 255, 255, 0.78); border: 1px solid color-mix(in srgb, var(--destination-tone) 14%, #dce7f1); border-radius: 8px; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85); transition: color 150ms ease, border-color 150ms ease, background 150ms ease, transform 150ms ease; }
.admin-overview-level-breakdown button { grid-column: span 2; }
.admin-overview-level-breakdown button:nth-child(n + 4) { grid-column: span 3; }
.admin-overview-level-breakdown button:hover,
.admin-overview-ai-breakdown button:hover { color: var(--destination-tone); background: #fff; border-color: color-mix(in srgb, var(--destination-tone) 36%, #dce7f1); transform: translateY(-1px); }
.admin-overview-level-breakdown button:focus-visible,
.admin-overview-ai-breakdown button:focus-visible { outline: 2px solid color-mix(in srgb, var(--destination-tone) 34%, transparent); outline-offset: 1px; }
.admin-overview-level-breakdown strong,
.admin-overview-ai-breakdown strong { min-width: 0; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.admin-overview-level-breakdown span,
.admin-overview-ai-breakdown span { color: var(--destination-tone); font-size: 12px; font-weight: 850; font-variant-numeric: tabular-nums; }
.admin-overview-destination-open { width: 100%; padding-right: 0; padding-left: 0; text-align: left; background: transparent; border-right: 0; border-bottom: 0; border-left: 0; cursor: pointer; }
.admin-overview-destination-open:hover > b { transform: translateX(3px); }
.admin-overview-columns { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(330px, 0.85fr); gap: 16px; align-items: start; }
.admin-overview-panel { padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.admin-overview-panel > header { margin-bottom: 14px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.admin-overview-panel h3 { margin: 2px 0 0; color: var(--navy-950); font-size: 20px; }
.admin-overview-panel .detail-link { padding: 0; background: transparent; border: 0; cursor: pointer; }
.admin-attention-list,
.admin-overview-feedback-list { display: grid; }
.admin-attention-row { width: 100%; display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 3px 12px; padding: 13px 0; text-align: left; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid #edf0f4; cursor: pointer; }
.admin-attention-row:last-child,
.admin-overview-feedback:last-child { border-bottom: 0; }
.admin-attention-row:hover strong { color: var(--blue-700); }
.admin-attention-priority { grid-row: 1 / 3; width: fit-content; align-self: start; padding: 4px 7px; color: #8b4d06; background: #fff2d9; border-radius: 5px; font-size: 9px; font-weight: 800; }
.admin-attention-row strong { overflow: hidden; color: var(--navy-950); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.admin-attention-row small { color: var(--muted-2); font-size: 10px; line-height: 1.5; }
.admin-overview-feedback { padding: 13px 0; border-bottom: 1px solid #edf0f4; }
.admin-overview-feedback > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.admin-overview-feedback strong { color: var(--blue-700); font-size: 10px; }
.admin-overview-feedback span { overflow: hidden; color: var(--navy-950); font-size: 11px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.admin-overview-feedback p { margin: 7px 0 5px; display: -webkit-box; overflow: hidden; color: var(--muted); font-size: 11px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.admin-overview-feedback time { color: var(--muted-2); font-size: 9px; }
.admin-competition-layout { min-height: 720px; display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 18px; align-items: start; }
.admin-competition-sidebar {
  max-height: calc(100svh - 28px);
  position: sticky;
  top: 14px;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  gap: 12px;
  overflow: hidden;
}
.admin-create-competition { width: 100%; }
.admin-competition-sidebar .search-field { min-height: 46px; display: flex; align-items: center; padding-inline: 14px; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.admin-competition-sidebar #admin-competition-search { width: 100%; flex: 1 1 auto; }
.admin-competition-sidebar #admin-competition-search::-webkit-search-cancel-button { margin-left: auto; cursor: pointer; }
.admin-competition-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.admin-competition-filters label { display: grid; gap: 4px; color: var(--muted); font-size: 9px; font-weight: 750; }
.admin-competition-filters select { width: 100%; min-width: 0; height: 37px; padding: 0 28px 0 10px; color: var(--navy-800); background-color: #fff; border: 1px solid var(--line); border-radius: 7px; font: inherit; font-size: 10px; }
.admin-body select {
  cursor: pointer;
}
.admin-competition-list {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.admin-competition-item {
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 3px 10px;
  padding: 13px 14px;
  text-align: left;
  color: var(--ink);
  background: #fff;
  border: 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
}
.admin-competition-item:last-child { border-bottom: 0; }
.admin-competition-item:hover,
.admin-competition-item[aria-selected="true"] { background: #eef6ff; }
.admin-competition-item > span { grid-row: 1 / 3; color: var(--blue-700); font-size: 11px; font-weight: 800; }
.admin-competition-item strong { min-width: 0; overflow: hidden; color: var(--navy-950); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.admin-competition-item small { color: var(--muted-2); font-size: 10px; }
.admin-editor { min-width: 0; }
.admin-editor-form { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.admin-editor-form textarea[data-admin-autosize] { overflow-y: hidden; resize: none; }
.admin-editor-form textarea[data-admin-autosize="summary"] { min-height: 126px; }
.admin-editor-form textarea[data-admin-autosize="long"] { min-height: 184px; }
.admin-editor-heading { margin-bottom: 24px; display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; }
.admin-editor-heading h2 { margin: 3px 0; font-size: 26px; }
.admin-editor-heading p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.admin-form-grid .form-field { margin: 0; align-content: start; }
.admin-form-grid .form-field small { color: var(--muted-2); font-size: 10px; font-weight: 500; line-height: 1.55; }
.admin-span-2 { grid-column: 1 / -1; }
.admin-editor-section { padding: 25px 0 28px; border-top: 1px solid var(--line); }
.admin-editor-section:first-of-type { padding-top: 0; border-top: 0; }
.admin-editor-section > header { margin-bottom: 18px; display: flex; align-items: flex-start; gap: 12px; }
.admin-editor-section > header > span { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; color: var(--blue-700); background: #eaf3ff; border-radius: 50%; font-size: 11px; font-weight: 850; }
.admin-editor-section > header h3 { margin: 1px 0 4px; color: var(--navy-950); font-size: 18px; }
.admin-editor-section > header p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.admin-check-group { margin: 0; padding: 15px; border: 1px solid var(--line); border-radius: 9px; }
.admin-check-group legend { padding: 0 6px; color: var(--navy-800); font-size: 12px; font-weight: 750; }
.admin-check-group > div { display: flex; flex-wrap: wrap; gap: 8px 13px; }
.admin-check-group label,
.admin-inline-check { display: inline-flex; align-items: center; gap: 6px; color: #536277; font-size: 11px; }
.admin-check-group input,
.admin-inline-check input { accent-color: var(--blue-700); }
.admin-evidence-editor { padding: 16px; background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; }
.admin-evidence-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.admin-evidence-heading strong { display: block; color: var(--navy-950); font-size: 13px; }
.admin-evidence-heading p { max-width: 720px; margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.admin-evidence-heading .button { min-height: 38px; flex: 0 0 auto; padding-inline: 14px; }
.admin-evidence-list { margin-top: 13px; display: grid; gap: 10px; }
.admin-evidence-list:empty::before { content: "暂无资料链接，可点击“增加资料”补充。"; padding: 14px; color: var(--muted-2); background: #fff; border: 1px dashed #cbd5e1; border-radius: 8px; font-size: 10px; }
.admin-evidence-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 10px; align-items: end; padding: 13px; background: #fff; border: 1px solid #e1e8f0; border-radius: 9px; }
.admin-evidence-row > .form-field:nth-of-type(1) { grid-column: span 7; }
.admin-evidence-row > .form-field:nth-of-type(2) { grid-column: span 5; }
.admin-evidence-row .admin-evidence-url { grid-column: span 7; }
.admin-evidence-row > .form-field:nth-of-type(4) { grid-column: span 5; }
.admin-evidence-actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.admin-evidence-actions button { min-height: 42px; padding: 0 13px; border-radius: 8px; font: inherit; font-size: 10px; font-weight: 750; cursor: pointer; }
.admin-evidence-move { color: #1d5f9f; background: #f4f9ff; border: 1px solid #b9d2ec; }
.admin-evidence-move:hover:not(:disabled) { color: #084f95; background: #eaf4ff; border-color: #83b1de; }
.admin-evidence-move:disabled { color: #9aa7b5; background: #f5f7f9; border-color: #dce3ea; cursor: not-allowed; }
.admin-evidence-remove { color: #8c2f27; background: #fff7f6; border: 1px solid #efc7c2; }
.admin-evidence-remove:hover { color: #7a271f; background: #fff0ee; border-color: #e8aaa3; }
.admin-archive-control {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  color: #8c2f27;
  background: #fff5f3;
  border: 1px solid #efbcb6;
  border-radius: 9px;
}
.admin-archive-control input { width: 18px; height: 18px; accent-color: #b42318; }
.admin-archive-control span { display: grid; }
.admin-archive-control small { color: #7c625f; }
.admin-visibility-section { padding-bottom: 4px; }
.admin-visibility-control { min-height: 64px; display: flex; align-items: center; gap: 12px; padding: 14px 16px; color: var(--navy-800); background: #f2f8ff; border: 1px solid #c8dcf2; border-radius: 9px; }
.admin-visibility-control input { width: 19px; height: 19px; flex: 0 0 auto; accent-color: var(--blue-700); }
.admin-visibility-control span { display: grid; gap: 3px; }
.admin-visibility-control strong { color: var(--navy-950); }
.admin-visibility-control small { color: var(--muted); font-size: 10px; }
.admin-editor-actions { position: sticky; bottom: 10px; z-index: 4; margin: 22px -10px 0; display: flex; justify-content: flex-end; gap: 9px; padding: 13px; background: rgba(255, 255, 255, 0.94); border: 1px solid var(--line); border-radius: 10px; backdrop-filter: blur(12px); }
.admin-final-publish-actions { position: static; margin: 22px 0 0; background: #fff; }
.admin-configuration-form,
.admin-competition-editor-form { display: grid; gap: 14px; }
.admin-configuration-publish-actions,
.admin-competition-publish-actions {
  margin: 0;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 28px rgba(18, 50, 82, 0.1);
}
.admin-publish-actions { align-items: center; justify-content: space-between; }
.admin-publish-actions .button { margin-left: auto; }
.admin-publish-status { margin: 0; color: var(--muted); font-size: 10px; font-weight: 750; line-height: 1.5; }
.admin-publish-status::before { width: 8px; height: 8px; display: inline-block; margin-right: 7px; content: ""; background: #16806f; border-radius: 50%; }
.admin-publish-status.is-dirty { color: #8a5205; }
.admin-publish-status.is-dirty::before { background: #d68117; box-shadow: 0 0 0 3px rgba(214, 129, 23, 0.14); }
.admin-version-history { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.admin-version-history h3 { font-size: 17px; }
.admin-version-history ol { margin: 0; padding: 0; list-style: none; }
.admin-version-history li { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 12px; padding: 9px 0; color: var(--muted); border-bottom: 1px solid #edf0f4; font-size: 11px; }
.admin-version-history li strong { color: var(--navy-950); }
.admin-version-history time { color: var(--muted-2); }
.admin-card .detail-link { margin-top: 8px; padding: 0; background: transparent; border: 0; cursor: pointer; }
.admin-map-summary { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.admin-map-summary button { min-height: 36px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 10px; cursor: pointer; transition: color 150ms ease, background 150ms ease, border-color 150ms ease, box-shadow 150ms ease; }
.admin-map-summary button:hover { color: var(--blue-700); border-color: #a9c8eb; }
.admin-map-summary button[aria-pressed="true"] { color: #fff; background: var(--blue-700); border-color: var(--blue-700); box-shadow: 0 7px 16px rgba(7, 90, 189, 0.16); }
.admin-map-summary strong { color: inherit; font-size: 11px; }
.admin-map-workbench { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 16px; align-items: start; }
.admin-map-library { position: sticky; top: 14px; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.admin-map-library-heading { margin-bottom: 13px; display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.admin-map-library-heading h3 { margin: 2px 0 0; color: var(--navy-950); font-size: 16px; }
.admin-map-library-heading > span { color: var(--muted-2); font-size: 10px; }
.admin-map-search { min-height: 42px; margin-bottom: 12px; padding-inline: 12px; background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; }
.admin-map-add-difficulty { margin: 0 0 12px; }
.admin-map-add-difficulty small { color: var(--muted-2); font-size: 9px; font-weight: 500; }
.admin-map-add-hint { margin: 0 0 12px; padding: 10px 11px; color: var(--blue-700); background: #f1f7ff; border: 1px solid #c9dcf3; border-radius: 8px; font-size: 10px; line-height: 1.55; }
.admin-map-library-list { max-height: calc(100vh - 270px); overflow: auto; border: 1px solid var(--line); border-radius: 9px; }
.admin-map-library-item { width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 2px 9px; padding: 11px; text-align: left; color: var(--ink); background: #fff; border: 0; border-bottom: 1px solid #edf0f4; cursor: pointer; }
.admin-map-library-item:last-child { border-bottom: 0; }
.admin-map-library-item:hover { background: #f2f7fd; }
.admin-map-library-item .level-badge { grid-row: 1 / 3; align-self: center; }
.admin-map-library-item strong { min-width: 0; overflow: hidden; color: var(--navy-950); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.admin-map-library-item small { color: var(--muted-2); font-size: 9px; }
.admin-map-library-item b { grid-column: 3; grid-row: 1 / 3; align-self: center; color: var(--blue-700); font-size: 10px; }
.admin-map-editor { display: grid; gap: 16px; }
.admin-map-group { min-width: 0; padding: 18px; background: #f8fafc; border: 1px solid var(--line); border-radius: 12px; }
.admin-map-group > header { margin-bottom: 12px; display: flex; justify-content: space-between; gap: 12px; }
.admin-map-group > header span { color: var(--navy-950); font-size: 17px; font-weight: 850; }
.admin-map-group > header p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.admin-map-group > header strong { color: var(--blue-700); font-size: 11px; }
.admin-map-group-list { display: grid; gap: 10px; }
.admin-map-drop-empty { min-height: 76px; display: grid; place-items: center; padding: 14px; text-align: center; color: var(--muted-2); background: #fff; border: 1px dashed #b9c9db; border-radius: 9px; font-size: 10px; }
.admin-map-row,
.admin-config-panel,
.admin-table-card {
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.admin-map-row-heading { margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.admin-map-row { padding: 17px; }
.admin-map-row-title { min-width: 0; display: flex; align-items: center; gap: 9px; }
.admin-map-row-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-map-row-heading > div:last-child { display: flex; align-items: center; gap: 9px; }
.admin-map-row-heading strong { color: var(--navy-950); }
.admin-map-row-heading .detail-link { padding: 0; background: transparent; border: 0; cursor: pointer; }
.admin-map-row-heading .detail-link:disabled { opacity: 0.35; cursor: default; }
.admin-map-row-heading .detail-link.is-danger { color: #a23a31; }
.admin-map-visibility-control { min-height: 68px; display: flex; align-items: center; gap: 12px; padding: 14px 16px; color: #174b7b; background: #edf6ff; border: 1px solid #9dc4e9; border-radius: 9px; cursor: pointer; }
.admin-map-visibility-control input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--blue-700); }
.admin-map-visibility-control span { display: grid; gap: 3px; }
.admin-map-visibility-control strong { color: var(--navy-950); font-size: 13px; }
.admin-map-visibility-control small { color: #5d7188; font-size: 10px; line-height: 1.5; }
.admin-configuration-form,
.admin-config-panel + .admin-config-panel { margin-top: 16px; }
.admin-config-panel h3,
.admin-table-card h3 { margin: 0 0 16px; font-size: 18px; }
.admin-config-section-heading { margin-bottom: 18px; display: flex; align-items: flex-start; gap: 12px; }
.admin-config-section-heading > span { width: 30px; height: 30px; flex: 0 0 30px; display: grid; place-items: center; color: var(--blue-700); background: #eaf3ff; border-radius: 50%; font-size: 11px; font-weight: 850; }
.admin-config-section-heading > div { min-width: 0; }
.admin-config-panel .admin-config-section-heading h3 { margin: 1px 0 4px; color: var(--navy-950); font-size: 18px; }
.admin-config-section-heading p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.admin-config-note { margin: -8px 0 16px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.admin-association-activity-grid { margin: 16px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-association-activity-editor { display: grid; gap: 12px; padding: 14px; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; }
.admin-association-activity-editor .form-field { margin: 0; }
.admin-association-join-fields { display: grid; gap: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.admin-association-field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px; }
.admin-association-field-row .form-field { min-width: 0; align-content: start; margin: 0; }
.admin-association-field-row input { height: 50px; min-height: 50px; }
.admin-association-field-row textarea { min-height: 82px; }
.admin-association-resource-grid { margin-top: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-color-grid { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 12px; }
.admin-category-config-grid { display: grid; grid-template-columns: repeat(2, minmax(260px, 1fr)); gap: 12px; }
.admin-category-config-row { display: grid; grid-template-columns: minmax(0, 1fr) 142px; gap: 10px; padding: 14px; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; }
.admin-category-config-row .form-field { margin: 0; }
.admin-category-config-row .admin-color-field { grid-template-columns: 42px max-content; grid-template-rows: auto auto; align-content: center; justify-content: center; gap: 2px 12px; padding: 9px; background: #fff; }
.admin-category-config-row .admin-color-field input { width: 42px; height: 42px; }
.admin-category-config-row .admin-color-field code { align-self: start; }
.admin-color-field { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 5px 10px; padding: 12px; color: var(--navy-800); background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; font-size: 12px; font-weight: 750; }
.admin-color-field input { grid-row: 1 / 3; width: 42px; height: 42px; padding: 2px; background: #fff; border: 1px solid #c7d2df; border-radius: 7px; cursor: pointer; }
.admin-color-field code { color: var(--muted); font-size: 10px; font-weight: 600; text-transform: uppercase; }
.admin-days-select { min-width: 150px; margin: 0; }
.admin-stat-grid { margin-bottom: 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.admin-stat-grid article { padding: 20px 22px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.admin-stat-grid span { display: block; color: var(--muted); font-size: 12px; }
.admin-stat-grid strong { display: block; margin-top: 6px; color: var(--navy-950); font-size: 34px; line-height: 1; }
.admin-stat-grid article > small { display: block; margin-top: 10px; font-size: 10px; font-weight: 750; }
.admin-stat-grid article > p { margin: 7px 0 0; color: var(--muted-2); font-size: 9px; line-height: 1.5; }
.admin-stat-change.is-up { color: #075abd; }
.admin-stat-change.is-down { color: #9a5a13; }
.admin-stat-change.is-flat,
.admin-stat-change.is-new { color: var(--muted-2); }
.admin-analytics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.admin-analytics-daily { grid-column: 1 / -1; }
.admin-analytics-trend { margin-bottom: 16px; padding-bottom: 12px; }
.admin-analytics-trend > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.admin-analytics-trend > header h3 { margin-bottom: 4px; }
.admin-analytics-trend > header p { margin: 0; color: var(--muted); font-size: 10px; }
.admin-analytics-trend svg { width: 100%; height: auto; min-height: 240px; overflow: visible; }
.admin-chart-grid line { stroke: #e2e8f0; stroke-width: 1; }
.admin-chart-grid text {
  fill: #6f7f93;
  stroke: none;
  stroke-width: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0;
}
.admin-chart-line { fill: none; stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.admin-chart-line.is-views { stroke: #075abd; }
.admin-chart-line.is-visitors { stroke: #d47a20; stroke-dasharray: 7 5; }
.admin-analytics-trend circle { stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.admin-analytics-trend circle.is-views { fill: #fff; stroke: #075abd; }
.admin-analytics-trend circle.is-visitors { fill: #d47a20; stroke: #fff; }
.admin-chart-legend { display: flex; gap: 13px; color: var(--muted); font-size: 10px; }
.admin-chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.admin-chart-legend span::before { width: 18px; height: 2px; content: ""; background: currentColor; }
.admin-chart-legend .is-views { color: #075abd; }
.admin-chart-legend .is-visitors { color: #d47a20; }
.admin-chart-legend .is-visitors::before { height: 0; background: transparent; border-top: 2px dashed currentColor; }
.admin-analytics-note { margin-top: 16px; padding: 15px 18px; color: var(--muted); background: #f7f9fc; border-left: 3px solid #8da4bd; font-size: 10px; line-height: 1.65; }
.admin-analytics-note strong { color: var(--navy-800); }
.admin-analytics-note p { margin: 4px 0 0; }
.admin-table-scroll { overflow-x: auto; }
.admin-table-card table { width: 100%; border-collapse: collapse; font-size: 12px; }
.admin-table-card th { padding: 10px 12px; color: var(--navy-800); text-align: left; background: #f5f8fb; border-bottom: 1px solid var(--line); }
.admin-table-card td { padding: 10px 12px; color: var(--muted); border-bottom: 1px solid #edf0f4; vertical-align: top; }
.admin-table-card tbody tr:last-child td { border-bottom: 0; }
.admin-table-card code { color: var(--navy-800); font-size: 10px; overflow-wrap: anywhere; }

.admin-community-filters {
  display: grid;
  grid-template-columns: 180px 180px minmax(240px, 1fr);
  gap: 12px;
  align-items: end;
  margin-bottom: 16px;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.admin-community-management-filters {
  margin-top: 2px;
  background: #f7fafd;
  border-color: #dce6f1;
}

.admin-community-filters .form-field { margin-bottom: 0; }
.admin-community-filters input,
.admin-community-filters select { min-height: 46px; }

.admin-community-layout {
  display: grid;
  gap: 16px;
}

.admin-community-table-card { min-width: 0; }
.admin-community-table-card table { width: 100%; min-width: 1120px; table-layout: fixed; }
.admin-community-col-content { width: 26%; }
.admin-community-col-type { width: 8%; }
.admin-community-col-author { width: 10%; }
.admin-community-col-competition { width: 16%; }
.admin-community-col-status { width: 13%; }
.admin-community-col-time { width: 12%; }
.admin-community-col-actions { width: 15%; }
.admin-community-table-card th,
.admin-community-table-card td { overflow-wrap: anywhere; }
.admin-community-table-card td { vertical-align: middle; }
.admin-community-table-card td.admin-community-empty-cell { padding: 0; }
.admin-community-table-card > header,
.admin-announcement-form > header,
.admin-community-reports > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.admin-community-table-card > header h3,
.admin-announcement-form > header h3,
.admin-community-reports > header h3 { margin: 0; }
.admin-community-table-card > header p,
.admin-announcement-form > header p,
.admin-community-reports > header p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.admin-community-module-kicker { margin: 0 0 4px !important; color: #075abd !important; font-size: 9px !important; font-weight: 850; letter-spacing: 0.1em; }
.admin-community-management-card .admin-community-module-kicker { color: #08745f !important; }
.admin-community-module-empty {
  width: 100%;
  min-height: 220px;
  display: grid;
  place-content: center;
  gap: 7px;
  padding: 32px 24px;
}
.admin-community-module-empty h3,
.admin-community-module-empty p { margin: 0; }

.admin-community-post-detail summary {
  color: var(--navy-950);
  font-weight: 850;
  line-height: 1.45;
  cursor: pointer;
}
.admin-community-post-detail p { max-width: 520px; margin: 9px 0 0; color: #52687e; font-size: 11px; line-height: 1.7; }
.admin-community-post-detail small { display: block; margin-top: 7px; color: #8b5e13; font-size: 9px; }
.admin-community-status { display: inline-flex; min-height: 24px; align-items: center; justify-content: center; padding: 3px 8px; border-radius: 999px; color: #596e83; background: #edf2f7; font-size: 9px; font-weight: 850; white-space: nowrap; }
.admin-community-status.is-published { color: #08745f; background: #e4f7f2; }
.admin-community-status.is-pending { color: #9a5c00; background: #fff4d8; }
.admin-community-status.is-hidden,
.admin-community-status.is-rejected { color: #9b3f3f; background: #fff0f0; }
.admin-community-status-stack { display: grid; justify-items: start; gap: 5px; }
.admin-community-review-status { color: #63778d; font-size: 8px; font-weight: 760; white-space: nowrap; }
.admin-community-review-status.is-reviewing { color: #075abd; }
.admin-community-review-status.is-passed { color: #08745f; }
.admin-community-review-status.is-flagged,
.admin-community-review-status.is-failed { color: #9b3f3f; }
.admin-community-row-actions { width: 100%; display: grid; gap: 10px; align-items: stretch; }
.admin-community-row-actions.is-review { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-community-row-actions.is-management { grid-template-columns: minmax(0, 1fr); }
.admin-community-row-actions button {
  min-width: 62px;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 9px;
  color: #075abd;
  background: #f4f9ff;
  border: 1px solid #c3d9ef;
  border-radius: 6px;
  font: inherit;
  font-size: 9px;
  font-weight: 820;
  cursor: pointer;
}
.admin-community-row-actions button[data-status="rejected"] { color: #a33f48; background: #fff6f7; border-color: #e9c3c8; }
.admin-community-row-actions button[data-status="rejected"]:hover { color: #8f2732; background: #ffedef; border-color: #da9da5; }
.admin-community-row-actions button:hover,
.admin-community-report-actions .button-secondary:hover { background: #e9f4ff; border-color: #8ab8ee; }
.admin-community-pagination { min-height: 56px; display: flex; align-items: center; justify-content: center; gap: 10px; border-top: 1px solid #edf1f5; }
.admin-community-pagination button { min-width: 76px; min-height: 34px; color: #075abd; background: #fff; border: 1px solid #c9daeb; border-radius: 7px; font: inherit; font-size: 10px; font-weight: 820; cursor: pointer; }
.admin-community-pagination button:disabled { opacity: 0.45; cursor: default; }
.admin-community-pagination span { color: var(--muted); font-size: 10px; }

.admin-announcement-form { display: grid; gap: 14px; }
.admin-announcement-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.admin-announcement-fields .form-field { margin: 0; }
.admin-announcement-title,
.admin-announcement-body { width: 100%; }
.admin-announcement-title input { min-height: 48px; }
.admin-announcement-form textarea { resize: vertical; }
.admin-announcement-body textarea { min-height: 150px; }
.admin-announcement-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.admin-announcement-meta .form-field { margin: 0; }
.admin-announcement-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.admin-announcement-actions .button { min-width: 132px; min-height: 44px; }
.admin-community-pin { display: flex; align-items: center; gap: 8px; color: #52677d; font-size: 10px; font-weight: 760; }
.admin-community-pin input { width: 16px; height: 16px; accent-color: #0b6de3; }
.admin-community-reports > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.admin-community-reports article { min-height: 78px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: stretch; padding: 16px; background: #f9fbfd; border: 1px solid #e1e8f0; border-radius: 7px; }
.admin-community-report-content { min-width: 0; }
.admin-community-reports article strong { color: var(--navy-950); font-size: 12px; }
.admin-community-reports article p { margin: 5px 0; color: #60748a; font-size: 10px; line-height: 1.55; }
.admin-community-reports article small { color: #8795a6; font-size: 8px; }
.admin-community-report-ai { display: grid; gap: 4px; margin: 9px 0; padding: 9px 11px; color: #536b83; background: #f3f7fb; border-radius: 7px; }
.admin-community-report-ai span { width: max-content; min-height: 22px; display: inline-flex; align-items: center; padding: 2px 8px; color: #60758a; background: #e8eef4; border-radius: 999px; font-size: 8px; font-weight: 850; }
.admin-community-report-ai p { margin: 0 !important; font-size: 9px !important; }
.admin-community-report-ai.is-reviewing span { color: #075abd; background: #e8f3ff; }
.admin-community-report-ai.is-passed span { color: #08745f; background: #e4f7f2; }
.admin-community-report-ai.is-flagged span,
.admin-community-report-ai.is-failed span { color: #9b3f3f; background: #fff0f0; }
.admin-community-report-evidence { margin: 9px 0; padding: 9px 11px; color: #536b83; background: #fff; border: 1px solid #dce6f1; border-radius: 7px; }
.admin-community-report-evidence summary { width: max-content; color: #1264c5; cursor: pointer; font-size: 9px; font-weight: 800; }
.admin-community-report-evidence p { max-height: 150px; overflow: auto; padding-right: 4px; }
.admin-community-author-deleted { min-height: 30px; display: inline-flex; align-items: center; padding: 4px 10px; color: #7d8b99; background: #eef2f6; border-radius: 999px; font-size: 9px; font-weight: 800; }
.admin-community-report-actions { width: 100%; display: flex; justify-content: flex-end; gap: 10px; margin: 0; }
.admin-community-report-actions .button { min-width: 132px; min-height: 44px; }

@media (max-width: 1120px) {
  .admin-announcement-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .admin-community-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-community-search { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .admin-community-filters { grid-template-columns: 1fr; }
  .admin-announcement-meta { grid-template-columns: 1fr; }
  .admin-announcement-actions { align-items: stretch; flex-direction: column; }
  .admin-community-report-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-community-report-actions .button { width: 100%; min-width: 0; }
}
.admin-account-form { max-width: none; margin-bottom: 24px; padding: 22px; }
.admin-account-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.admin-account-panel-heading h3 { margin: 4px 0 6px; color: var(--navy-950); font-size: 19px; }
.admin-account-panel-heading p:last-child { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.admin-account-form .admin-form-grid { margin-top: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.admin-account-form .form-field { min-width: 0; align-content: start; }
.admin-account-form .form-field input { height: 50px; min-height: 50px; }
.admin-account-form input[readonly] { color: var(--navy-800); background: #f4f7fa; cursor: default; }
.admin-account-form .form-field small { color: var(--muted-2); font-size: 10px; font-weight: 500; }
.admin-account-actions { margin-top: 18px; display: flex; justify-content: flex-end; }
.admin-account-actions .button { min-width: 150px; min-height: 48px; }
.admin-team-panel { padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 13px; }
.admin-team-panel > header h3 { margin: 4px 0 6px; color: var(--navy-950); font-size: 19px; }
.admin-team-panel > header p:last-child { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.admin-team-create { margin-top: 18px; display: grid; grid-template-columns: minmax(150px, .8fr) minmax(150px, .8fr) minmax(220px, 1fr) auto; align-items: end; gap: 10px; padding: 14px; background: #f7fafc; border: 1px solid #e5ebf2; border-radius: 10px; }
.admin-team-create .form-field { margin: 0; }
.admin-team-create .button { min-height: 44px; }
.admin-team-list { margin-top: 16px; display: grid; gap: 10px; }
.admin-team-item { padding: 15px; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; }
.admin-team-item.is-owner { display: flex; align-items: center; justify-content: space-between; gap: 18px; background: #f8fbff; }
.admin-team-item strong { display: block; margin-top: 4px; color: var(--navy-950); font-size: 13px; }
.admin-team-item p { margin: 4px 0 0; color: var(--muted-2); font-size: 9px; }
.admin-team-role { color: #075abd; font-size: 9px; font-weight: 750; }
.admin-team-state { padding: 5px 8px; color: #496078; background: #edf2f7; border-radius: 999px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.admin-team-state.is-active { color: #0d665d; background: #e9f7f3; }
.admin-team-item-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.admin-team-switch { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 10px; font-weight: 650; cursor: pointer; }
.admin-team-switch input { width: 17px; height: 17px; accent-color: #078b80; }
.admin-team-fields { margin-top: 13px; display: grid; grid-template-columns: .8fr .8fr 1fr; gap: 10px; }
.admin-team-fields .form-field { margin: 0; }
.admin-team-item-actions { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.admin-team-item-actions small { color: var(--muted-2); font-size: 9px; line-height: 1.5; }

/* 2026-08 administrator workspace redesign */
#admin-workspace,
.admin-section,
.admin-section-heading > div,
.admin-competition-layout,
#admin-ai-map-form,
.admin-map-workbench,
.admin-map-editor-column,
.admin-map-editor,
.admin-map-row,
.admin-map-row-heading,
.admin-issue-columns,
.admin-issue-group,
.admin-resource-card { min-width: 0; }
.admin-section :where(h2, h3, h4, p, small, a, code, dd),
.admin-guide { overflow-wrap: anywhere; }
.admin-section-tabs button { min-height: 48px; padding: 8px 7px; font-size: 13px; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
.admin-secondary-section { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.admin-secondary-heading { margin-bottom: 16px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.admin-secondary-heading h2 { margin: 3px 0 5px; font-size: 23px; }
.admin-secondary-heading p { margin: 0; color: var(--muted); }
.admin-capability-note { flex: 0 0 auto; max-width: 280px; padding: 8px 10px; color: #765214; background: #fff7e5; border: 1px solid #e8c987; border-radius: 8px; font-size: 10px; font-weight: 750; line-height: 1.5; }

.admin-feedback-section { width: 100%; }
.admin-feedback-section #admin-list { display: grid; gap: 12px; }
.admin-issue-tabs.admin-feedback-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-feedback-card { padding: 18px; background: #f8fbff; border-color: #cbdff3; border-left: 4px solid #4f8fca; }
.admin-feedback-card :where(h4, p, a) { overflow-wrap: anywhere; }
.admin-feedback-reference { flex: 0 0 auto; padding: 3px 7px; color: #075abd; background: #e7f2ff; border-radius: 999px; font-size: 9px; font-weight: 800; }
.admin-feedback-outcome { padding: 4px 8px; border-radius: 999px; }
.admin-feedback-outcome.is-attention { color: #8a5708; background: #fff1cf; }
.admin-feedback-outcome.is-success { color: #0d6b53; background: #e6f7f1; }
.admin-feedback-outcome.is-danger { color: #9a2f2a; background: #fff0ee; }
.admin-feedback-description { color: var(--navy-800) !important; font-size: 12px !important; }
.admin-feedback-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; color: var(--muted-2); font-size: 10px; }
.admin-feedback-meta a,
.admin-feedback-meta button { padding: 0; color: var(--blue-700); background: transparent; border: 0; font: inherit; font-weight: 750; cursor: pointer; }
.admin-feedback-card .form-field { margin: 14px 0 0; }
.admin-feedback-note { margin-top: 14px; padding: 12px; background: #fff; border: 1px solid #dce6ef; border-radius: 8px; }
.admin-feedback-note strong { color: var(--navy-800); font-size: 11px; }
.admin-feedback-note p { margin: 5px 0 0; color: var(--muted); font-size: 11px; white-space: pre-line; }
.admin-feedback-actions { margin-top: 12px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.button-danger { color: #972f29; background: #fff5f3; border-color: #e6b8b3; }
.button-danger:hover { color: #7f241f; background: #ffebe8; border-color: #d98f88; }

.admin-monthly-maintenance-section > .admin-section-heading { margin-bottom: 20px; }
.admin-monthly-maintenance-section > .admin-section-heading .button { flex: 0 0 auto; min-height: 46px; }
.admin-monthly-maintenance-summary { margin-bottom: 14px; padding: 22px; color: var(--navy-900); background: #fff; border: 1px solid #d7e2ed; border-radius: 14px; box-shadow: 0 10px 26px rgba(20, 54, 88, 0.055); }
.admin-monthly-maintenance-summary > .is-error { margin: 12px 0 0; padding: 10px 12px; color: #8c342d; background: #fff3f1; border: 1px solid #e8c4c0; border-radius: 8px; font-size: 12px; line-height: 1.55; }

.admin-issue-tabs {
  width: 100%;
  margin-bottom: 14px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 7px;
  background: #edf2f7;
  border: 1px solid #d8e1eb;
  border-radius: 14px;
}
.admin-issue-tabs button {
  min-width: 0;
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 12px;
  color: #60728a;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 9px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 750;
  transition: color 150ms ease, background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}
.admin-issue-tabs button:hover { color: var(--navy-800); background: rgba(255, 255, 255, 0.62); }
.admin-issue-tabs button[aria-selected="true"] { color: #075abd; background: #fff; border-color: #c8dbee; box-shadow: 0 5px 14px rgba(25, 65, 104, 0.08); }
.admin-issue-tabs strong { min-width: 34px; padding: 3px 7px; color: inherit; background: #e8eef5; border-radius: 999px; font-size: 9px; }
.admin-issue-tabs button[aria-selected="true"] strong { background: #e7f2ff; }
.admin-issue-domain-filters {
  margin: 0 0 22px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.admin-issue-domain-filters button {
  --domain-accent: #5b7088;
  --domain-tint: #f3f6f9;
  min-width: 0;
  min-height: 82px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 16px;
  text-align: left;
  color: #60728a;
  background: radial-gradient(circle at 92% 6%, color-mix(in srgb, var(--domain-accent) 10%, transparent), transparent 42%), linear-gradient(155deg, #fff 0%, var(--domain-tint) 100%);
  border: 1px solid #d3deea;
  border-radius: 15px;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 10px 24px rgba(20, 54, 88, 0.055);
  font-size: 13px;
  font-weight: 750;
  transition: color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}
.admin-issue-domain-filters button[data-issue-domain="website"] { --domain-accent: #075abd; --domain-tint: #f0f7ff; }
.admin-issue-domain-filters button[data-issue-domain="registration"] { --domain-accent: #7b55b4; --domain-tint: #f7f2ff; }
.admin-issue-domain-filters button[data-issue-domain="month"] { --domain-accent: #b86d16; --domain-tint: #fff8ee; }
.admin-issue-domain-filters button[data-issue-domain="fee"] { --domain-accent: #087e74; --domain-tint: #effaf8; }
.admin-issue-domain-filters button:hover { color: var(--navy-800); border-color: color-mix(in srgb, var(--domain-accent) 36%, #d3deea); box-shadow: 0 10px 24px rgba(20, 54, 88, 0.08); transform: translateY(-1px); }
.admin-issue-domain-filters button:is([aria-selected="true"], [aria-pressed="true"]) { color: var(--domain-accent); border-color: color-mix(in srgb, var(--domain-accent) 54%, #d3deea); box-shadow: inset 0 1px 0 #fff, 0 0 0 3px color-mix(in srgb, var(--domain-accent) 13%, transparent), 0 14px 28px color-mix(in srgb, var(--domain-accent) 12%, transparent); }
.admin-issue-domain-heading { min-width: 0; flex: 1 1 auto; display: flex; align-items: center; gap: 10px; color: inherit; line-height: 1.35; }
.admin-issue-domain-heading b { width: 31px; height: 31px; flex: 0 0 31px; display: grid; place-items: center; color: var(--domain-accent); background: color-mix(in srgb, var(--domain-accent) 9%, #fff); border: 1px solid color-mix(in srgb, var(--domain-accent) 18%, #dce7f1); border-radius: 9px; font-size: 9px; letter-spacing: 0.05em; }
.admin-issue-domain-heading span { min-width: 0; color: var(--navy-900); font-size: 13px; font-weight: 800; }
.admin-issue-domain-total { flex: 0 0 auto; display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 4px; color: var(--domain-accent); white-space: nowrap; }
.admin-issue-domain-total strong { font-size: 24px; font-variant-numeric: tabular-nums; line-height: 1; }
.admin-issue-domain-total small { color: #7a899b; font-size: 10px; font-weight: 700; }
.admin-issue-panel { min-width: 0; padding: 20px; background: #f8fbff; border: 1px solid #cbddec; border-radius: 12px; }
.admin-issue-panel.is-registration { background: #fffbf3; border-color: #ead9b8; }
.admin-issue-panel:is(.is-timing, .is-timing-review) { background: #f7fbf9; border-color: #c9dfd5; }
.admin-issue-panel:is(.is-fee, .is-fee-review) { background: #fff9f7; border-color: #e7d2c9; }
.admin-issue-panel > header { margin-bottom: 14px; }
.admin-lifecycle-panel { padding: 0; background: transparent; border: 0; border-radius: 0; }
.admin-batch-toolbar {
  min-width: 0;
  margin: 0 0 16px !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  background: #f4f8fc;
  border: 1px solid #d4e1ed;
  border-radius: 12px;
}
.admin-batch-toolbar[hidden] { display: none; }
.admin-batch-toolbar > div { min-width: 0; display: grid; gap: 3px; }
.admin-batch-toolbar > div > span { color: #718398; font-size: 11px; font-weight: 780; letter-spacing: 0.04em; }
.admin-batch-toolbar > div > strong { color: #244966; font-size: 15px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-batch-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.admin-batch-pagination button {
  min-width: 88px;
  min-height: 44px;
  padding: 9px 14px;
  color: #075abd;
  background: #fff;
  border: 1px solid #c8d9e8;
  border-radius: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}
.admin-batch-pagination button:disabled { color: #9aa8b6; background: #eef2f6; cursor: not-allowed; }
.admin-lifecycle-list:focus-visible { outline: 3px solid rgba(7, 90, 189, 0.18); outline-offset: 4px; }
.admin-issue-panel > header h3 { margin: 3px 0 5px; color: var(--navy-950); font-size: 20px; }
.admin-issue-panel > header p:last-child { margin: 0; color: var(--muted); font-size: 11px; }
.admin-lifecycle-list { display: grid; gap: 16px; }
.admin-lifecycle-domain-group { min-width: 0; padding: 18px; background: #f7f9fc; border: 1px solid #dce4ec; border-radius: 12px; }
.admin-lifecycle-domain-group > header { margin-bottom: 14px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.admin-lifecycle-domain-group > header h4 { margin: 0; color: var(--navy-900); font-size: 15px; }
.admin-lifecycle-domain-group > header strong { color: #6d7d90; font-size: 10px; font-weight: 750; }
.admin-lifecycle-summary-card { border-left: 3px solid #5b9b84; box-shadow: 0 8px 22px rgba(20, 54, 88, 0.05); }
.admin-lifecycle-summary-card dl { margin-top: 12px; }
.admin-lifecycle-history-card { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: start; gap: 4px 16px; padding: 18px 18px 18px 16px; background: #fff; border: 1px solid #dce4ec; border-radius: 12px; box-shadow: 0 8px 22px rgba(20, 54, 88, 0.045); }
.admin-lifecycle-history-marker { width: 10px; height: 10px; margin-top: 7px; display: block; background: #188069; border: 3px solid #dff3ec; border-radius: 50%; box-shadow: 0 0 0 1px #80bcae; box-sizing: border-box; }
.admin-lifecycle-history-card.is-reopened .admin-lifecycle-history-marker { background: #b46b15; border-color: #fff0d6; box-shadow: 0 0 0 1px #d7aa70; }
.admin-lifecycle-history-copy { min-width: 0; }
.admin-lifecycle-history-context { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; color: #6f8094; font-size: 9px; font-weight: 750; }
.admin-lifecycle-history-context strong { display: inline-flex; align-items: center; gap: 7px; color: #13715d; font-size: 9px; }
.admin-lifecycle-history-context strong::before { width: 4px; height: 4px; content: ""; background: currentColor; border-radius: 50%; }
.admin-lifecycle-history-card.is-reopened .admin-lifecycle-history-context strong { color: #9a5c10; }
.admin-lifecycle-history-copy > h4 { margin: 3px 0 0; color: var(--navy-950); font-size: 14px; line-height: 1.45; }
.admin-lifecycle-history-copy > p { margin: 10px 0 9px; color: #52647a; font-size: 11px; line-height: 1.65; }
.admin-lifecycle-ai-history { margin: 12px 0 10px; padding: 14px; background: #f7fafc; border: 1px solid #dbe6ef; border-radius: 10px; }
.admin-lifecycle-ai-history > header { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; }
.admin-lifecycle-ai-history > header strong { color: #165f9d; font-size: 11px; }
.admin-lifecycle-ai-history > header span { color: #74869a; font-size: 9px; }
.admin-lifecycle-ai-history > p { margin: 9px 0; color: #52647a; font-size: 11px; line-height: 1.65; }
.admin-lifecycle-ai-history > dl { margin: 10px 0 0; display: grid; gap: 7px; }
.admin-lifecycle-ai-history > dl > div { display: grid; grid-template-columns: minmax(90px, 0.3fr) minmax(0, 1fr); gap: 10px; padding: 8px 10px; background: #fff; border: 1px solid #e1e9f1; border-radius: 8px; }
.admin-lifecycle-ai-history dt { color: #6a7d91; font-size: 9px; font-weight: 750; }
.admin-lifecycle-ai-history dd { margin: 0; color: #273f58; font-size: 10px; line-height: 1.55; overflow-wrap: anywhere; }
.admin-lifecycle-ai-history-comparisons { display: grid; gap: 10px; margin-top: 10px; }
.admin-lifecycle-ai-history-comparisons article { overflow: hidden; background: #fff; border: 1px solid #dce7f0; border-radius: 9px; }
.admin-lifecycle-ai-history-comparisons h5 { margin: 0; padding: 8px 10px; color: #39566f; background: #f3f7fa; border-bottom: 1px solid #dce7f0; font-size: 10px; }
.admin-lifecycle-ai-history-comparisons article > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-lifecycle-ai-history-comparisons section { min-width: 0; padding: 10px; border-right: 1px solid #e3ebf2; }
.admin-lifecycle-ai-history-comparisons section:last-child { border-right: 0; }
.admin-lifecycle-ai-history-comparisons section.is-final { background: #f2fbf7; }
.admin-lifecycle-ai-history-comparisons span { color: #72849a; font-size: 9px; font-weight: 750; }
.admin-lifecycle-ai-history-comparisons p { margin: 5px 0 0; color: #314a63; font-size: 10px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-lifecycle-ai-history-evidence { margin-top: 10px; }
.admin-lifecycle-ai-history-evidence > strong { color: #5d7187; font-size: 9px; }
.admin-lifecycle-ai-history-evidence .admin-maintenance-ai-evidence-list { display: flex; flex-wrap: wrap; }
.admin-lifecycle-history-actions { align-self: center; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.admin-lifecycle-history-actions .button { min-height: 38px; padding: 8px 12px; font-size: 10px; white-space: nowrap; }
.admin-core-maintenance-card { padding: 18px; }
.admin-maintenance-ai-review { margin-top: 14px; padding: 14px; background: linear-gradient(150deg, #faf8ff 0%, #f7faff 100%); border: 1px solid #d9d4ee; border-left: 4px solid #7958af; border-radius: 10px; }
.admin-maintenance-ai-review.is-stale { background: #f7f8fa; border-color: #d7dde5; border-left-color: #7b8794; }
.admin-maintenance-ai-review.is-auto_applied { background: linear-gradient(150deg, #f2fbf7 0%, #f6fbff 100%); border-color: #bcded2; border-left-color: #188069; }
.admin-maintenance-ai-automation-failure { border-color: #e8cbc7; border-left: 4px solid #b24a42; box-shadow: 0 8px 22px rgba(112, 47, 42, 0.055); }
.admin-maintenance-ai-automation-failure > .admin-maintenance-ai-review { background: #fff8f7; border-color: #e7c5c1; border-left-color: #b24a42; }
.admin-maintenance-ai-automation-note { margin: 10px 0 0 !important; color: #596b80 !important; font-size: 9px !important; line-height: 1.6 !important; }
.admin-maintenance-ai-review-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.admin-maintenance-ai-review-heading > div:first-child { min-width: 0; display: grid; gap: 3px; }
.admin-maintenance-ai-review-heading > div:first-child > span { color: #7758a8; font-size: 9px; font-weight: 850; letter-spacing: 0.04em; }
.admin-maintenance-ai-review-heading > div:first-child > strong { color: var(--navy-950); font-size: 12px; line-height: 1.45; }
.admin-maintenance-ai-badges { flex: 0 0 auto; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.admin-maintenance-ai-badges > span { padding: 4px 7px; color: #53647a; background: #fff; border: 1px solid #d9e1eb; border-radius: 999px; font-size: 8px; font-weight: 800; white-space: nowrap; }
.admin-maintenance-ai-badges .is-risk-critical,
.admin-maintenance-ai-badges .is-risk-high,
.admin-maintenance-ai-badges .is-confidence-low { color: #96372f; background: #fff3f1; border-color: #e8bbb6; }
.admin-maintenance-ai-badges .is-risk-medium,
.admin-maintenance-ai-badges .is-confidence-medium { color: #8a5708; background: #fff7e7; border-color: #e7ce9b; }
.admin-maintenance-ai-badges .is-risk-low,
.admin-maintenance-ai-badges .is-risk-routine,
.admin-maintenance-ai-badges .is-confidence-high { color: #176b58; background: #eef9f6; border-color: #b9ddd4; }
.admin-maintenance-ai-summary { margin: 10px 0 0 !important; color: #394f68 !important; font-size: 11px !important; line-height: 1.65 !important; white-space: pre-line; }
.admin-maintenance-ai-meta { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px 14px; color: #748398; font-size: 8px; font-weight: 720; }
.admin-maintenance-ai-warning { margin-top: 10px; display: grid; gap: 3px; padding: 9px 10px; color: #77520e; background: #fff8e8; border: 1px solid #e6cc96; border-radius: 8px; font-size: 9px; line-height: 1.5; }
.admin-maintenance-ai-warning strong { color: inherit; }
.admin-maintenance-ai-warning.is-error { color: #923b34; background: #fff3f1; border-color: #e4b7b2; }
.admin-maintenance-ai-warning.is-info { color: #315f88; background: #f0f7ff; border-color: #bfd6eb; }
.admin-maintenance-ai-warning.is-success { color: #176b58; background: #edf9f5; border-color: #b9ddd4; }
.admin-maintenance-ai-detail { margin-top: 11px; background: rgba(255, 255, 255, 0.78); border: 1px solid #dce3ed; border-radius: 8px; }
.admin-maintenance-ai-detail > summary { min-height: 42px; display: flex; align-items: center; padding: 9px 11px; color: #5b4582; cursor: pointer; font-size: 10px; font-weight: 800; list-style-position: inside; }
.admin-maintenance-ai-detail > summary:focus-visible { outline: 3px solid rgba(121, 88, 175, 0.25); outline-offset: 2px; }
.admin-maintenance-ai-diff { display: grid; gap: 7px; padding: 0 11px 11px; }
.admin-maintenance-ai-diff > div { min-width: 0; display: grid; grid-template-columns: minmax(100px, 0.38fr) minmax(0, 1fr) 20px minmax(0, 1fr); align-items: stretch; gap: 7px; }
.admin-maintenance-ai-diff > div > strong { padding: 8px; color: #43566d; background: #f2f5f8; border-radius: 6px; font-size: 9px; line-height: 1.45; }
.admin-maintenance-ai-diff > div > span { min-width: 0; display: grid; align-content: start; gap: 3px; padding: 8px; background: #fff; border: 1px solid #e0e6ee; border-radius: 6px; }
.admin-maintenance-ai-diff > div > span:last-child { background: #f3f9ff; border-color: #c8ddef; }
.admin-maintenance-ai-diff small { color: #7c8999; font-size: 8px; }
.admin-maintenance-ai-diff b { color: #334a63; font-size: 9px; font-weight: 750; line-height: 1.5; overflow-wrap: anywhere; white-space: pre-line; }
.admin-maintenance-ai-diff i { align-self: center; color: #8467b0; font-size: 13px; font-style: normal; text-align: center; }
.admin-maintenance-ai-empty { margin: 0 !important; padding: 9px 10px; color: #718095 !important; background: #f5f7fa; border-radius: 6px; font-size: 9px !important; line-height: 1.55 !important; }
.admin-maintenance-ai-evidence { margin: 0 11px 11px; padding-top: 10px; border-top: 1px solid #e1e6ee; }
.admin-maintenance-ai-evidence > strong { color: #43566d; font-size: 9px; }
.admin-maintenance-ai-evidence-list { margin: 8px 0 0; padding: 0; display: grid; gap: 7px; list-style: none; }
.admin-maintenance-ai-evidence-list li { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.admin-maintenance-ai-evidence-list li > div { min-width: 0; }
.admin-maintenance-ai-evidence-list li > div > p { margin: 5px 0 0; color: #64768a; font-size: 8px; line-height: 1.55; overflow-wrap: anywhere; }
.admin-maintenance-ai-evidence-list a,
.admin-maintenance-ai-evidence-list .admin-link-unavailable { display: inline-flex; max-width: 100%; padding: 6px 8px; overflow-wrap: anywhere; }
.admin-maintenance-ai-evidence-list a { color: var(--blue-700); background: #eef6ff; border: 1px solid #c9dcf2; border-radius: 6px; font-size: 9px; font-weight: 750; }
.admin-maintenance-ai-evidence-list small { flex: 0 0 auto; color: #77869a; font-size: 8px; }
.admin-maintenance-ai-review-actions { margin-top: 11px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.admin-maintenance-ai-review-actions .button { width: auto; min-height: 40px; padding: 8px 11px; font-size: 9px; }
.admin-maintenance-ai-review-actions .button:disabled { color: #7d8997; background: #f2f4f6; border-color: #d8dee5; box-shadow: none; cursor: not-allowed; opacity: 1; }
.admin-maintenance-ai-confirm { margin-top: 10px; padding: 11px; background: #fff9eb; border: 1px solid #e4cb98; border-radius: 8px; }
.admin-maintenance-ai-confirm[hidden] { display: none; }
.admin-maintenance-ai-confirm p { margin: 0 !important; display: grid; gap: 3px; color: #6f5019 !important; font-size: 9px !important; line-height: 1.5 !important; }
.admin-maintenance-ai-confirm > label { margin-top: 9px; display: grid; gap: 5px; color: #6f5019; font-size: 9px; font-weight: 750; }
.admin-maintenance-ai-confirm textarea { width: 100%; min-height: 68px; padding: 9px 10px; color: var(--navy-900); background: #fff; border: 1px solid #d9bd83; border-radius: 7px; resize: vertical; font: inherit; font-weight: 500; line-height: 1.5; }
.admin-maintenance-ai-confirm textarea:focus { outline: 3px solid rgba(186, 132, 28, 0.18); border-color: #b48225; }
.admin-maintenance-ai-confirm > div { margin-top: 9px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.admin-maintenance-ai-confirm .button { min-height: 40px; padding: 8px 11px; font-size: 9px; }
.admin-maintenance-ai-action-status { min-height: 0; margin: 7px 0 0 !important; color: #66778c !important; font-size: 9px !important; line-height: 1.45 !important; }
.admin-maintenance-ai-action-status:empty { display: none; }
.admin-maintenance-ai-action-status.is-success { color: #176b58 !important; }
.admin-maintenance-ai-action-status.is-error { color: #96372f !important; }

/* Human decision cards: keep execution details in the audit trail, not in the task UI. */
.admin-monthly-maintenance-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.admin-monthly-maintenance-summary > article {
  min-width: 0;
  min-height: 124px;
  display: grid;
  align-content: center;
  gap: 7px;
  padding: 20px;
  background: #fff;
  border: 1px solid #d8e3ed;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(21, 53, 84, 0.05);
}
.admin-monthly-maintenance-summary > article > span { color: #65788d; font-size: 13px; font-weight: 760; }
.admin-monthly-maintenance-summary > article > strong { color: #153957; font-size: 30px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.admin-monthly-maintenance-summary > article > small { color: #77889a; font-size: 12px; line-height: 1.55; }
.admin-monthly-maintenance-summary > .is-error { grid-column: 1 / -1; }
.admin-monthly-runtime-board {
  margin: 0 0 20px;
  padding: 22px;
  background: linear-gradient(145deg, #f7fbff 0%, #f5faf8 100%);
  border: 1px solid #cdddea;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(21, 53, 84, 0.055);
}
.admin-monthly-runtime-board > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.admin-monthly-runtime-board > header h3 { margin: 3px 0 5px; color: var(--navy-950); font-size: 21px; line-height: 1.4; }
.admin-monthly-runtime-board > header p:last-child { margin: 0; color: #64788d; font-size: 12px; line-height: 1.6; }
.admin-monthly-runtime-board > header > strong {
  flex: 0 0 auto;
  padding: 7px 11px;
  color: #176b58;
  background: #eaf7f2;
  border: 1px solid #b9ddd2;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap;
}
.admin-monthly-runtime-active { margin-top: 17px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.admin-monthly-runtime-item {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 15px 16px;
  background: #fff;
  border: 1px solid #d6e2ec;
  border-left: 4px solid #2a76b8;
  border-radius: 12px;
  box-shadow: 0 7px 18px rgba(21, 53, 84, 0.045);
}
.admin-monthly-runtime-item > div { min-width: 0; display: flex; align-items: center; gap: 8px; }
.admin-monthly-runtime-item > div > span { flex: 0 0 auto; padding: 4px 7px; color: #075abd; background: #eaf4ff; border-radius: 999px; font-size: 10px; font-weight: 850; }
.admin-monthly-runtime-item > div > strong { min-width: 0; color: var(--navy-950); font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-monthly-runtime-item > p { margin: 0; color: #385b77; font-size: 12px; font-weight: 760; line-height: 1.5; }
.admin-monthly-runtime-item > small { color: #73859a; font-size: 10px; line-height: 1.55; }
.admin-monthly-runtime-empty { grid-column: 1 / -1; min-height: 92px; display: grid; place-content: center; gap: 5px; padding: 17px; text-align: center; background: rgba(255, 255, 255, 0.72); border: 1px dashed #ccdbe7; border-radius: 12px; }
.admin-monthly-runtime-empty strong { color: #31516c; font-size: 14px; }
.admin-monthly-runtime-empty span { color: #74869a; font-size: 11px; line-height: 1.5; }
.admin-monthly-runtime-queue-summary { margin-top: 14px; padding-top: 14px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 16px; border-top: 1px solid #d5e2eb; }
.admin-monthly-runtime-queue-summary > div { display: grid; gap: 2px; }
.admin-monthly-runtime-queue-summary > div > span { color: #73859a; font-size: 10px; font-weight: 780; }
.admin-monthly-runtime-queue-summary > div > strong { color: #244966; font-size: 14px; }
.admin-monthly-runtime-queue-summary ol { min-width: 0; margin: 0; padding: 0; display: flex; align-items: center; gap: 7px; overflow: hidden; list-style: none; }
.admin-monthly-runtime-queue-summary li { min-width: 0; display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; color: #526b82; background: #fff; border: 1px solid #d7e2eb; border-radius: 9px; font-size: 10px; white-space: nowrap; }
.admin-monthly-runtime-queue-summary li > span { flex: 0 0 auto; color: #8a621e; font-weight: 800; }
.admin-monthly-runtime-queue-summary li > strong { min-width: 0; max-width: 180px; overflow: hidden; color: #294a65; text-overflow: ellipsis; }
.admin-monthly-runtime-queue-summary li.is-empty { color: #7b8b9d; background: transparent; border-style: dashed; }
.admin-monthly-selection {
  margin: 0 0 20px;
  padding: 24px;
  background: #fff;
  border: 1px solid #ceddea;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(21, 53, 84, 0.06);
}
.admin-monthly-selection > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
}
.admin-monthly-selection > header h3 { margin: 3px 0 5px; color: var(--navy-950); font-size: 22px; line-height: 1.4; }
.admin-monthly-selection > header p:last-child { max-width: 850px; margin: 0; color: #63788d; font-size: 13px; line-height: 1.65; }
.admin-monthly-selected-count {
  min-width: 112px;
  display: grid;
  justify-items: center;
  gap: 3px;
  padding: 15px 18px;
  color: #075abd;
  background: #edf6ff;
  border: 1px solid #c8ddf0;
  border-radius: 12px;
}
.admin-monthly-selected-count strong { font-size: 30px; line-height: 1; font-variant-numeric: tabular-nums; }
.admin-monthly-selected-count span { color: #52708c; font-size: 12px; font-weight: 760; }
.admin-monthly-selection-filters {
  margin-top: 22px;
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(130px, 1fr));
  gap: 12px;
}
.admin-monthly-selection-filters .form-field { min-width: 0; margin: 0; }
.admin-monthly-selection-filters .form-field > span { color: #4f657c; font-size: 12px; font-weight: 780; }
.admin-monthly-selection-filters .form-field :is(input, select) { width: 100%; height: 50px; min-height: 50px; font-size: 14px; }
.admin-monthly-selection-filters .admin-monthly-multi-filter { min-width: 0; padding-top: 24px; }
.admin-monthly-selection-filters .admin-monthly-multi-filter summary { height: 50px; min-height: 50px; }
.admin-monthly-selection-filters .admin-monthly-multi-filter summary > span { color: #4f657c; font-size: 12px; font-weight: 780; }
.admin-monthly-selection-filters .admin-monthly-multi-filter summary strong { min-width: 0; max-width: 100%; font-size: 14px; }
.admin-monthly-filter-chevron {
  grid-column: 2;
  grid-row: 1;
  width: 8px;
  height: 8px;
  margin: 0 4px 4px 0;
  border-right: 2px solid #3f5873;
  border-bottom: 2px solid #3f5873;
  transform: rotate(45deg);
  transition: transform 160ms ease, margin 160ms ease;
}
.admin-monthly-multi-filter[open] .admin-monthly-filter-chevron { margin: 4px 4px 0 0; transform: rotate(225deg); }
.admin-monthly-selection-filters .admin-monthly-multi-filter .multi-filter-panel { z-index: 70; }
.admin-monthly-selection-filters .admin-monthly-multi-filter:nth-of-type(n+3) .multi-filter-panel { right: 0; left: auto; }
.admin-monthly-selection-filters #admin-monthly-selection-category .multi-filter-panel { min-width: min(290px, calc(100vw - 32px)); }
.admin-monthly-selection-filters #admin-monthly-selection-registration .multi-filter-panel { min-width: min(210px, calc(100vw - 32px)); }
.admin-monthly-selection-filters .multi-option { min-height: 40px; }
.admin-monthly-selection-toolbar {
  min-height: 50px;
  margin-top: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.admin-monthly-selection-toolbar > p { margin: 0; color: #64788d; font-size: 13px; line-height: 1.55; }
.admin-monthly-selection-toolbar > div { flex: 0 0 auto; display: flex; gap: 8px; }
.admin-monthly-selection-toolbar .button { width: auto; min-height: 42px; padding: 8px 13px; font-size: 12px; }
.admin-monthly-selection-list {
  max-height: 480px;
  margin-top: 10px;
  overflow: auto;
  background: #f7f9fc;
  border: 1px solid #d8e3ed;
  border-radius: 12px;
  overscroll-behavior: contain;
}
.admin-monthly-selection-list > .empty-state { min-height: 190px; display: grid; place-content: center; }
.admin-monthly-selection-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(250px, 1.2fr) minmax(190px, 0.7fr) minmax(190px, 0.55fr);
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: #fff;
  border-bottom: 1px solid #e1e8ef;
}
.admin-monthly-selection-item:last-child { border-bottom: 0; }
.admin-monthly-selection-item:has(input:checked) { background: #f1f8ff; box-shadow: inset 0 0 0 2px #88b9e6; }
.admin-monthly-selection-item.is-started { background: #f7f8fa; }
.admin-monthly-selection-check { width: 24px; height: 24px; position: relative; display: grid; place-items: center; cursor: pointer; }
.admin-monthly-selection-check input { width: 20px; height: 20px; margin: 0; accent-color: #075abd; cursor: pointer; }
.admin-monthly-selection-check input:disabled { cursor: not-allowed; }
.admin-monthly-selection-identity { min-width: 0; display: flex; align-items: flex-start; gap: 11px; }
.admin-monthly-selection-identity > div { min-width: 0; display: grid; gap: 4px; }
.admin-monthly-selection-identity strong { color: var(--navy-950); font-size: 15px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-monthly-selection-identity small { color: #77889a; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-monthly-selection-meta { min-width: 0; display: grid; gap: 5px; color: #50677e; font-size: 12px; line-height: 1.45; }
.admin-monthly-selection-meta span { overflow-wrap: anywhere; }
.admin-monthly-selection-meta span + span { color: #74869a; }
.admin-monthly-selection-state { min-width: 0; display: grid; justify-items: end; gap: 8px; }
.admin-monthly-selection-state > strong { min-height: 28px; display: inline-flex; align-items: center; padding: 5px 9px; color: #63758a; background: #eef2f6; border: 1px solid #dae2e9; border-radius: 999px; font-size: 11px; line-height: 1.35; white-space: nowrap; }
.admin-monthly-selection-state > strong.is-success { color: #176b58; background: #edf9f5; border-color: #b9ddd4; }
.admin-monthly-selection-state > strong.is-running { color: #075abd; background: #edf6ff; border-color: #bcd7ef; }
.admin-monthly-selection-state > strong.is-warning { color: #815411; background: #fff7e7; border-color: #e7ce9b; }
.admin-monthly-selection-state > strong.is-error { color: #8d443e; background: #fff3f1; border-color: #e8c4c0; }
.admin-monthly-selection-state > strong.is-attention { max-width: 250px; justify-content: flex-end; text-align: right; white-space: normal; border-radius: 10px; }
.admin-monthly-selection-state .button { width: auto; min-height: 38px; padding: 7px 11px; font-size: 11px; }
.admin-monthly-selection-state .button:disabled { color: #7e8b99; background: #eef1f4; border-color: #d9e0e7; cursor: not-allowed; opacity: 1; }
.admin-monthly-outcomes-panel { grid-column: 2 / -1; min-width: 0; }
.admin-monthly-outcome-counts { display: block; color: #50677e; font-size: 12px; line-height: 1.6; text-align: right; }
.admin-monthly-outcomes { width: 100%; min-width: 0; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.admin-monthly-outcomes summary { color: #075abd; cursor: pointer; text-align: right; padding: 4px 0; }
.admin-monthly-outcomes ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; list-style: none; padding: 0; margin: 10px 0 0; }
.admin-monthly-outcomes li { padding: 10px 0; border-top: 1px solid #dae2e9; }
.admin-monthly-outcomes li strong { color: #263d53; font-size: 12px; }
.admin-monthly-outcomes li p { margin: 5px 0 0; color: #50677e; }
.admin-monthly-selection > footer {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.admin-monthly-selection > footer p { max-width: 720px; margin: 0; color: #63778c; font-size: 12px; line-height: 1.6; }
.admin-monthly-selection > footer .button { flex: 0 0 auto; min-width: 210px; min-height: 48px; padding: 10px 18px; font-size: 13px; }
.admin-monthly-run-control {
  min-width: 0;
  margin: 0 0 20px;
  padding: 20px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  background: linear-gradient(135deg, #f5f9fd 0%, #fff 70%);
  border: 1px solid #d5e2ed;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(21, 53, 84, 0.05);
}
.admin-monthly-run-control[data-monthly-run-paused="true"] { background: linear-gradient(135deg, #fff8e9 0%, #fff 72%); border-color: #e5d2a9; }
.admin-monthly-run-control > div:first-child { min-width: 0; }
.admin-monthly-run-control h3 { margin: 3px 0 4px; color: var(--navy-950); font-size: 20px; line-height: 1.4; }
.admin-monthly-run-control p:last-child { margin: 0; color: #64788d; font-size: 13px; line-height: 1.65; }
.admin-monthly-run-control-actions { flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.admin-monthly-run-control-actions > strong { min-height: 34px; display: inline-flex; align-items: center; padding: 7px 11px; color: #65788b; background: #eef2f6; border: 1px solid #d9e2e9; border-radius: 999px; font-size: 12px; line-height: 1.35; white-space: nowrap; }
.admin-monthly-run-control-actions > strong.is-running { color: #075abd; background: #edf6ff; border-color: #bcd7ef; }
.admin-monthly-run-control-actions > strong.is-paused { color: #815411; background: #fff5df; border-color: #e4c98e; }
.admin-monthly-run-control-actions .button { width: auto; min-width: 110px; min-height: 42px; padding: 8px 14px; font-size: 12px; }
.admin-monthly-run-control-actions .button[hidden] { display: none; }
.admin-monthly-token-usage {
  margin: 0 0 20px;
  padding: 22px;
  background: #fff;
  border: 1px solid #d8e3ed;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(21, 53, 84, 0.05);
}
.admin-monthly-token-usage > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 0.42fr);
  align-items: center;
  gap: 18px 28px;
}
.admin-monthly-token-usage > header h3 { margin: 3px 0 4px; color: var(--navy-950); font-size: 20px; line-height: 1.4; }
.admin-monthly-token-usage > header p:last-child { max-width: 720px; margin: 0; color: #687b90; font-size: 12px; line-height: 1.65; }
.admin-monthly-token-total {
  min-width: 0;
  display: grid;
  justify-items: end;
  gap: 5px;
  padding-left: 22px;
  border-left: 1px solid #dce5ee;
  text-align: right;
}
.admin-monthly-token-total > span { color: #65788d; font-size: 12px; font-weight: 780; }
.admin-monthly-token-total > strong { max-width: 100%; color: #075abd; font-size: 32px; line-height: 1.1; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.admin-monthly-token-total > small { color: #6e8093; font-size: 11px; line-height: 1.5; }
.admin-monthly-token-models { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.admin-monthly-token-models article { min-width: 0; display: grid; gap: 6px; padding: 15px 16px; background: #f3f8fd; border: 1px solid #d4e3f0; border-radius: 11px; }
.admin-monthly-token-models article[data-monthly-token-model="supervisor"] { background: #fff9ed; border-color: #ead9b7; }
.admin-monthly-token-models span { color: #526b82; font-size: 12px; font-weight: 780; }
.admin-monthly-token-models strong { color: #173b59; font-size: 24px; line-height: 1.15; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.admin-monthly-token-models small { color: #708196; font-size: 11px; line-height: 1.5; }
.admin-monthly-token-breakdown { margin: 10px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.admin-monthly-token-breakdown > div { min-width: 0; display: grid; gap: 5px; padding: 13px 14px; background: #f7f9fc; border: 1px solid #e0e8f0; border-radius: 10px; }
.admin-monthly-token-breakdown dt { color: #718196; font-size: 11px; font-weight: 720; }
.admin-monthly-token-breakdown dd { margin: 0; color: var(--navy-950); font-size: 18px; font-weight: 850; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.admin-monthly-token-recorded { margin: 11px 0 0; color: #75869a; font-size: 11px; line-height: 1.55; text-align: right; }
.admin-monthly-token-details { margin-top: 16px; border: 1px solid #d8e3ed; border-radius: 12px; background: #fbfcfe; overflow: clip; }
.admin-monthly-token-details > summary {
  min-height: 54px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 46px 14px 16px;
  color: #24445f;
  cursor: pointer;
  font-size: 14px;
  font-weight: 820;
  list-style: none;
}
.admin-monthly-token-details > summary::-webkit-details-marker,
.admin-monthly-token-task > summary::-webkit-details-marker { display: none; }
.admin-monthly-token-details > summary::after,
.admin-monthly-token-task > summary::after {
  content: "";
  width: 8px;
  height: 8px;
  position: absolute;
  top: 50%;
  right: 20px;
  border-right: 2px solid #668198;
  border-bottom: 2px solid #668198;
  transform: translateY(-65%) rotate(45deg);
  transition: transform 160ms ease;
}
.admin-monthly-token-details[open] > summary::after,
.admin-monthly-token-task[open] > summary::after { transform: translateY(-35%) rotate(225deg); }
.admin-monthly-token-details > summary:hover { background: #f3f8fd; }
.admin-monthly-token-details > summary > strong { flex: 0 0 auto; color: #597087; font-size: 12px; font-weight: 760; }
.admin-monthly-token-detail-list { display: grid; gap: 10px; padding: 0 12px 12px; }
.admin-monthly-token-detail-list > .empty-state { min-height: 150px; display: grid; place-content: center; }
.admin-monthly-token-task { min-width: 0; background: #fff; border: 1px solid #dce5ed; border-radius: 10px; overflow: clip; }
.admin-monthly-token-task > summary {
  min-height: 70px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(170px, 0.55fr) auto minmax(86px, auto);
  align-items: center;
  gap: 12px;
  padding: 13px 42px 13px 15px;
  cursor: pointer;
  list-style: none;
}
.admin-monthly-token-task > summary:hover { background: #f7faff; }
.admin-monthly-token-task-identity { min-width: 0; display: grid; gap: 4px; }
.admin-monthly-token-task-identity strong { color: var(--navy-950); font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-monthly-token-task-identity small,
.admin-monthly-token-task-model { color: #6c8094; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-monthly-token-task > summary > strong { min-height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 5px 9px; color: #65768a; background: #eef2f6; border: 1px solid #d9e2e9; border-radius: 999px; font-size: 11px; line-height: 1.3; white-space: nowrap; }
.admin-monthly-token-task > summary > strong.is-success { color: #176b58; background: #edf9f5; border-color: #b9ddd4; }
.admin-monthly-token-task > summary > strong.is-running { color: #075abd; background: #edf6ff; border-color: #bcd7ef; }
.admin-monthly-token-task > summary > strong.is-warning { color: #815411; background: #fff7e7; border-color: #e7ce9b; }
.admin-monthly-token-task > summary > strong.is-error { color: #8d443e; background: #fff3f1; border-color: #e8c4c0; }
.admin-monthly-token-task > summary time { color: #315d80; font-size: 12px; font-weight: 820; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.admin-monthly-token-task-body { padding: 15px; background: #f8fafc; border-top: 1px solid #e0e7ee; }
.admin-monthly-token-task-meta,
.admin-monthly-token-task-metrics { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.admin-monthly-token-task-meta > div,
.admin-monthly-token-task-metrics > div { min-width: 0; display: grid; gap: 4px; padding: 10px 11px; background: #fff; border: 1px solid #e0e7ee; border-radius: 8px; }
.admin-monthly-token-task-metrics { margin-top: 9px; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.admin-monthly-token-task-meta dt,
.admin-monthly-token-task-metrics dt { color: #738497; font-size: 10px; font-weight: 720; }
.admin-monthly-token-task-meta dd,
.admin-monthly-token-task-metrics dd { margin: 0; color: #23425d; font-size: 12px; font-weight: 800; line-height: 1.4; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.admin-monthly-token-task-unmetered { margin: 9px 0 0; display: grid; gap: 3px; padding: 12px; color: #775521; background: #fff8e9; border: 1px solid #ead8b3; border-radius: 8px; font-size: 11px; line-height: 1.55; }
.admin-monthly-token-task-unmetered strong { color: #754b0a; font-size: 12px; }
.admin-monthly-token-detail-pagination { min-height: 54px; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 14px; border-top: 1px solid #dfe7ee; }
.admin-monthly-token-detail-pagination[hidden] { display: none; }
.admin-monthly-token-detail-pagination button { min-height: 34px; padding: 6px 11px; color: #315d80; background: #fff; border: 1px solid #cad8e4; border-radius: 8px; cursor: pointer; font: inherit; font-size: 11px; font-weight: 760; }
.admin-monthly-token-detail-pagination button:disabled { color: #9aa6b2; background: #f3f5f7; cursor: not-allowed; }
.admin-monthly-token-detail-pagination span { color: #667b90; font-size: 11px; }
.admin-monthly-type-tabs { width: 100%; max-width: none !important; flex: none; margin: 0 0 18px; }
.admin-monthly-type-tabs[hidden],
.admin-monthly-type-tabs button[hidden] { display: none; }
.admin-monthly-type-tabs button { min-height: 68px; font-size: 14px; }
.admin-monthly-type-tabs button span { line-height: 1.35; }
.admin-monthly-type-tabs strong { min-width: 46px; font-size: 10px; white-space: nowrap; }
.admin-monthly-competition-list { gap: 18px; }

.admin-decision-card {
  min-width: 0;
  margin-top: 16px;
  padding: 24px;
  background: #fff;
  border: 1px solid #cedce9;
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(21, 53, 84, 0.06);
}
.admin-monthly-decision-card { margin-top: 0; }
.admin-decision-card.is-exception { border-color: #e4cfaa; background: #fffdfa; }
.admin-decision-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.admin-decision-heading > div:first-child { min-width: 0; }
.admin-decision-heading > div:first-child > span,
.admin-decision-competition > div > span { color: #316d9f; font-size: 12px; font-weight: 850; letter-spacing: 0.04em; }
.admin-decision-heading :is(h4, h5) { margin: 4px 0 0; color: var(--navy-950); font-size: 18px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-decision-heading > strong {
  flex: 0 0 auto;
  padding: 7px 11px;
  color: #89580e;
  background: #fff7e8;
  border: 1px solid #e6cc98;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1.35;
  white-space: nowrap;
}
.admin-decision-competition { min-width: 0; display: flex; align-items: flex-start; gap: 12px; }
.admin-decision-competition > div { min-width: 0; display: grid; gap: 2px; }
.admin-decision-competition > div > small { color: #76879a; font-size: 12px; line-height: 1.45; }
.admin-decision-reason { margin-top: 18px; padding: 15px 17px; background: #f3f7fb; border: 1px solid #dbe6ef; border-radius: 11px; }
.admin-decision-reason > span { color: #5a7188; font-size: 12px; font-weight: 820; }
.admin-decision-reason > p { margin: 7px 0 0; color: #304b64; font-size: 14px; line-height: 1.72; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-decision-changes { margin-top: 16px; display: grid; gap: 14px; }
.admin-decision-changes > article { min-width: 0; overflow: hidden; border: 1px solid #d7e2ec; border-radius: 12px; }
.admin-decision-changes :is(h5, h6) { margin: 0; padding: 12px 15px; color: #2e4c66; background: #f7f9fb; border-bottom: 1px solid #dfe7ee; font-size: 14px; line-height: 1.45; }
.admin-decision-changes > article > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-decision-changes section { min-width: 0; padding: 15px; background: #fff; }
.admin-decision-changes section + section { border-left: 1px solid #dfe7ee; }
.admin-decision-changes section.is-proposed { background: #eef7ff; }
.admin-decision-changes section > span { color: #728398; font-size: 12px; font-weight: 800; }
.admin-decision-changes section.is-proposed > span { color: #075abd; }
.admin-decision-changes section > p {
  max-height: 280px;
  margin: 8px 0 0;
  overflow: auto;
  color: #2e465e;
  font-size: 14px;
  line-height: 1.75;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.admin-decision-exception { margin-top: 16px; display: grid; gap: 5px; padding: 14px 16px; color: #76501b; background: #fff6e6; border: 1px solid #e5ca95; border-radius: 10px; }
.admin-decision-exception strong { font-size: 14px; }
.admin-decision-exception span { font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.admin-decision-evidence { margin-top: 16px; padding-top: 15px; border-top: 1px solid #e0e8ef; }
.admin-decision-evidence > strong { color: #405a72; font-size: 13px; }
.admin-decision-evidence .admin-maintenance-ai-evidence-list { gap: 9px; margin-top: 10px; }
.admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list { display: flex; flex-wrap: wrap; align-items: flex-start; }
.admin-decision-evidence .admin-maintenance-ai-evidence-list li { align-items: flex-start; }
.admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list li { flex: 0 1 auto; max-width: 100%; min-width: 0; align-items: center; flex-wrap: wrap; gap: 6px; }
.admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list li > div { min-width: 0; max-width: min(340px, 100%); }
.admin-decision-evidence .admin-maintenance-ai-evidence-list a { padding: 8px 10px; font-size: 12px; }
.admin-decision-evidence .admin-maintenance-ai-evidence-list .admin-link-unavailable { font-size: 12px; }
.admin-decision-evidence .admin-maintenance-ai-evidence-list li > div > p { font-size: 12px; line-height: 1.55; }
.admin-decision-evidence .admin-maintenance-ai-evidence-list small { padding-top: 7px; font-size: 11px; }
.admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list small { padding-top: 0; white-space: nowrap; }
.admin-decision-actions { margin-top: 20px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.admin-decision-actions .button { min-height: 46px; padding: 10px 17px; font-size: 13px; }
.admin-decision-actions .button-quiet { color: #526b81; background: transparent; border-color: transparent; box-shadow: none; }
.admin-decision-actions .button-quiet:hover { color: #075abd; background: #f2f7fb; border-color: #d7e3ed; }
.admin-decision-card .admin-maintenance-ai-action-status { margin-top: 10px !important; font-size: 12px !important; line-height: 1.55 !important; }
.admin-issue-card:has(> .admin-decision-card) > :is(p, dl, .admin-issue-links) { display: none; }
[data-ai-manual-form][hidden] { display: none; }
.admin-maintenance-form { min-width: 0; max-width: 100%; margin-top: 14px; padding-top: 14px; border-top: 1px solid #dce5ee; }
.admin-maintenance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-maintenance-grid > * { min-width: 0; }
.admin-maintenance-grid .form-field { min-width: 0; margin: 0; align-self: start; align-content: start; }
.admin-maintenance-grid :is(input, select, textarea) { max-width: 100%; }
.admin-maintenance-grid :is(input, select) { height: 44px; min-height: 44px; }
.admin-maintenance-mode { margin-bottom: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.admin-maintenance-mode label { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 12px; color: #486079; background: #fff; border: 1px solid #cfdbe7; border-radius: 8px; cursor: pointer; font-size: 11px; font-weight: 750; }
.admin-maintenance-mode label:has(input:checked) { color: #075abd; background: #edf6ff; border-color: #88b5e1; }
.admin-maintenance-mode input { width: 16px; height: 16px; accent-color: #075abd; }
.admin-maintenance-months { margin: 0 0 12px; padding: 12px; background: #fff; border: 1px solid #d7e1eb; border-radius: 9px; }
.admin-maintenance-months legend { padding-inline: 5px; color: var(--navy-800); font-size: 10px; font-weight: 750; }
.admin-maintenance-months > div { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; }
.admin-maintenance-months label { min-height: 34px; display: flex; align-items: center; justify-content: center; gap: 5px; padding: 5px; background: #f6f8fb; border-radius: 6px; font-size: 9px; }
.admin-maintenance-actions { margin-top: 13px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.admin-maintenance-actions .button { width: auto; min-width: 150px; max-width: 100%; min-height: 48px; padding: 11px 20px; font-size: 12px; white-space: nowrap; }

.admin-issue-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.admin-issue-group { padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.admin-issue-group.is-official { background: #f7fbff; border-color: #c8def2; }
.admin-issue-group.is-registration { background: #fffaf0; border-color: #ecd9af; }
.admin-issue-group > header { margin-bottom: 13px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.admin-issue-group > header h3 { margin: 2px 0 4px; color: var(--navy-950); font-size: 19px; }
.admin-issue-group > header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.admin-issue-group > header > strong { flex: 0 0 auto; padding: 5px 8px; color: #275f91; background: #e7f2fc; border-radius: 999px; font-size: 10px; }
.admin-issue-group.is-registration > header > strong { color: #875300; background: #fff0c9; }
.admin-issue-list { display: grid; gap: 11px; }
.admin-issue-card { min-width: 0; padding: 15px; background: rgba(255, 255, 255, 0.94); border: 1px solid #dce8f3; border-radius: 10px; }
.is-registration .admin-issue-card { border-color: #eadfca; }
.admin-issue-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.admin-issue-card-heading > div { min-width: 0; display: flex; align-items: flex-start; gap: 8px; }
.admin-issue-card-heading h4 { min-width: 0; margin: 1px 0 0; color: var(--navy-950); font-size: 13px; line-height: 1.55; }
.admin-issue-card-heading > strong { flex: 0 0 auto; color: #285f8c; font-size: 10px; }
.is-registration .admin-issue-card-heading > strong { color: #8a5708; }
.admin-issue-card > p { margin: 10px 0; color: var(--muted); font-size: 10px; line-height: 1.65; white-space: pre-line; }
.admin-issue-card dl { margin: 10px 0; display: grid; gap: 7px; }
.admin-issue-card dl > div { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 8px; }
.admin-issue-card dt { color: var(--muted-2); font-size: 9px; }
.admin-issue-card dd { margin: 0; color: var(--navy-800); font-size: 10px; line-height: 1.55; }
.admin-issue-links { display: flex; flex-wrap: wrap; gap: 7px; }
.admin-issue-links a,
.admin-issue-links button,
.admin-link-unavailable { min-width: 0; padding: 6px 8px; border-radius: 6px; font-size: 9px; font-weight: 750; overflow-wrap: anywhere; }
.admin-issue-links a,
.admin-issue-links button { color: var(--blue-700); background: #eef6ff; border: 1px solid #c9dcf2; }
.admin-issue-links button { cursor: pointer; font: inherit; font-size: 9px; font-weight: 750; }
.admin-link-unavailable { color: #788698; background: #f1f4f7; border: 1px solid #dce3ea; }
.admin-direction-picker { margin: 0; padding: 17px; background: #f7faff; border: 1px solid #cddff2; border-radius: 11px; }
.admin-direction-picker > header { margin-bottom: 13px; }
.admin-direction-picker h4 { margin: 0 0 4px; color: var(--navy-950); font-size: 14px; }
.admin-direction-picker p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.admin-direction-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.admin-direction-option { min-width: 0; min-height: 98px; display: grid; align-content: space-between; gap: 12px; padding: 12px; background: #fff; border: 1px solid #d9e2ec; border-radius: 9px; transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease; }
.admin-direction-option:hover { border-color: #a9c7e7; }
.admin-direction-option.is-primary { background: #edf6ff; border-color: #6da5df; box-shadow: inset 0 0 0 1px rgba(7, 90, 189, 0.08); }
.admin-direction-option.is-related:not(.is-primary) { background: #eef9f7; border-color: #79bdb4; }
.admin-direction-option > strong { color: var(--navy-950); font-size: 11px; line-height: 1.5; }
.admin-direction-option > div { display: flex; flex-wrap: wrap; gap: 6px; }
.admin-direction-choice { min-height: 31px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 7px; color: #4d6078; background: #f5f7fa; border: 1px solid #dbe3ec; border-radius: 7px; cursor: pointer; font-size: 9px; font-weight: 750; }
.admin-direction-choice:has(input:checked) { color: #075abd; background: #fff; border-color: #87b5e4; }
.admin-direction-choice input { width: 15px; height: 15px; margin: 0; accent-color: var(--blue-700); }
.admin-direction-choice[aria-disabled="true"] { cursor: default; }
.admin-direction-option.is-primary .admin-direction-choice.is-related { color: #607286; background: #e7edf4; border-color: #ccd7e2; }
.admin-switch-card { min-height: 66px; display: flex; align-items: center; gap: 12px; padding: 14px 15px; color: var(--navy-800); background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.admin-switch-card input { width: 19px; height: 19px; flex: 0 0 auto; accent-color: var(--blue-700); }
.admin-switch-card > span { display: grid; gap: 3px; }
.admin-switch-card strong { color: var(--navy-950); }
.admin-switch-card small { color: var(--muted-2); font-size: 10px; line-height: 1.5; }
.admin-availability-card { min-width: 0; margin: 0; padding: 14px; color: var(--navy-800); background: #f7faff; border: 1px solid #cbdced; border-radius: 10px; }
.admin-availability-card legend { padding: 0 6px; color: var(--navy-950); font-size: 11px; font-weight: 850; }
.admin-availability-options { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.admin-availability-options label { min-width: 0; min-height: 64px; display: flex; align-items: center; gap: 10px; padding: 11px 12px; color: #52657c; background: #fff; border: 1px solid #d7e1eb; border-radius: 8px; cursor: pointer; }
.admin-availability-options label:has(input:checked) { color: #075abd; background: #edf6ff; border-color: #75a9df; box-shadow: inset 0 0 0 1px rgba(7, 90, 189, 0.07); }
.admin-availability-options input { width: 18px; height: 18px; flex: 0 0 auto; margin: 0; accent-color: var(--blue-700); }
.admin-availability-options span { min-width: 0; display: grid; gap: 3px; }
.admin-availability-options strong { color: inherit; font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }
.admin-availability-options small { color: var(--muted); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-availability-card > p { margin: 10px 2px 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.admin-availability-card.is-absent { background: #f8fafc; border-color: #d5dee8; }
.admin-availability-card.is-absent .admin-availability-options label:has(input:checked) { color: #4d6077; background: #eef2f6; border-color: #aebdcd; }
.admin-availability-card.has-conflict { background: #fff8ef; border-color: #dfa95f; box-shadow: inset 0 0 0 1px rgba(176, 106, 12, 0.07); }
.admin-availability-conflict { min-width: 0; margin-top: 11px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; align-items: center; padding: 11px 12px; color: #7b3e12; background: #fff; border: 1px solid #e6bf88; border-radius: 8px; }
.admin-availability-conflict strong,
.admin-availability-conflict span { min-width: 0; overflow-wrap: anywhere; }
.admin-availability-conflict strong { font-size: 10px; }
.admin-availability-conflict span { color: #866144; font-size: 9px; line-height: 1.5; }
.admin-availability-conflict button { grid-column: 2; grid-row: 1 / span 2; min-width: 0; min-height: 36px; padding: 7px 10px; color: #75410f; background: #fff6e7; border: 1px solid #d8a35b; border-radius: 7px; cursor: pointer; font-size: 9px; font-weight: 800; white-space: normal; }
.admin-domain-fields { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; transition: opacity 150ms ease; }
.admin-domain-fields > * { min-width: 0; }
.admin-domain-fields.is-unavailable,
.admin-anomaly-editor.is-unavailable { opacity: 0.58; }
.admin-domain-fields.is-unavailable :disabled,
.admin-anomaly-editor.is-unavailable :disabled { cursor: not-allowed; }
.admin-anomaly-editor { min-width: 0; overflow: hidden; color: #6e4b18; background: #fffaf0; border: 1px solid #e6cf9f; border-radius: 9px; transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease; }
.admin-anomaly-editor:has(.admin-anomaly-toggle input:checked) { color: #8e302c; background: #fff1ef; border-color: #d98f89; box-shadow: inset 0 0 0 1px rgba(167, 53, 46, 0.06); }
.admin-anomaly-toggle { min-width: 0; min-height: 68px; display: flex; align-items: center; gap: 11px; padding: 13px 14px; color: inherit; background: transparent; border: 0; border-radius: 0; cursor: pointer; }
.admin-anomaly-toggle input { width: 19px; height: 19px; flex: 0 0 auto; margin: 0; accent-color: #b33e37; }
.admin-anomaly-toggle > span { min-width: 0; display: grid; gap: 3px; }
.admin-anomaly-toggle strong { color: inherit; font-size: 12px; }
.admin-anomaly-toggle small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.admin-anomaly-reason { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 12px; padding: 13px 14px 14px; background: rgba(255, 255, 255, 0.22); border: 0; border-top: 1px solid #e4b5b1; border-radius: 0; }
.admin-anomaly-reason .form-field { min-width: 0; margin: 0; }
.admin-anomaly-reason .form-field > span { color: #783a36; }
.admin-anomaly-reason-note { grid-column: 1 / -1; color: #855955; font-size: 10px; line-height: 1.55; }
.admin-risk-section > header > span { color: var(--blue-700); background: #eaf3ff; }
.admin-timing-focus { margin-inline: 0; padding-inline: 0; background: #fff; }
.admin-key-field { padding: 0; background: #fff; border: 0; border-radius: 0; }

.admin-evidence-row .admin-evidence-remove { grid-column: auto; width: 100%; min-height: 42px; color: #861f1f; background: #fff2f1; border-color: #c95a55; font-size: 11px; }
.admin-evidence-row .admin-evidence-remove:hover { color: #6f1414; background: #ffe9e7; border-color: #a93631; }
.admin-evidence-row .admin-evidence-remove:focus-visible { outline: 3px solid rgba(159, 43, 37, 0.24); outline-offset: 2px; color: #681010; border-color: #932923; }

.admin-map-editor-column { display: grid; gap: 14px; }
.admin-map-library { max-height: calc(100svh - 28px); display: grid; grid-template-rows: auto auto auto auto minmax(0, 1fr); overflow: hidden; }
.admin-map-library-list { min-height: 0; max-height: none; overscroll-behavior: contain; }
.admin-map-library-heading > div,
.admin-map-group > header > div { min-width: 0; }
.admin-map-library-item strong,
.admin-map-row-title strong { min-width: 0; overflow: visible; color: var(--navy-950); text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.admin-map-row-title { flex: 1 1 auto; }
.admin-map-row-title strong { flex: 1 1 auto; }
.admin-map-row-heading > div:last-child { flex: 0 1 auto; flex-wrap: wrap; justify-content: flex-end; }
.admin-map-actions { margin: 0; justify-content: space-between; align-items: center; }
.admin-map-actions > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }

.admin-resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-resource-card { display: grid; align-content: start; gap: 11px; padding: 14px; background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; }
.admin-resource-card .form-field { margin: 0; }
.admin-resource-preview { min-height: 136px; display: grid; place-items: center; overflow: hidden; padding: 10px; background: #fff; border: 1px solid #dce4ec; border-radius: 8px; }
.admin-resource-preview img { width: 116px; height: 116px; object-fit: contain; }
.admin-resource-preview a { color: var(--blue-700); font-size: 11px; font-weight: 750; text-align: center; }
.admin-resource-upload { display: grid; grid-template-columns: minmax(0, 1fr) minmax(132px, auto); align-items: end; gap: 10px 12px; padding: 12px; background: #fff; border: 1px solid #dce4ec; border-radius: 9px; }
.admin-resource-upload > label { min-width: 0; display: grid; gap: 7px; color: var(--navy-800); font-size: 10px; font-weight: 750; }
.admin-resource-upload input { width: 100%; min-width: 0; height: 40px; padding: 3px; color: var(--muted); background: #f8fafc; border: 1px solid #cdd9e6; border-radius: 7px; font: inherit; font-weight: 600; cursor: pointer; }
.admin-resource-upload input::file-selector-button { height: 32px; margin-right: 10px; padding-inline: 12px; color: var(--navy-800); background: #eef5fc; border: 0; border-right: 1px solid #cdd9e6; border-radius: 5px 0 0 5px; font: inherit; font-weight: 750; cursor: pointer; }
.admin-resource-upload input:hover::file-selector-button,
.admin-resource-upload input:focus-visible::file-selector-button { color: var(--blue-700); background: #e2effc; }
.admin-resource-upload .button { min-width: 132px; min-height: 40px; padding-inline: 14px; }
.admin-resource-upload > p { grid-column: 1 / -1; margin: 0; padding-top: 9px; color: var(--muted-2); border-top: 1px solid #e5ebf2; font-size: 9px; line-height: 1.55; }

.admin-team-create :is(input, .button) { height: 50px; min-height: 50px; }

@media (max-width: 900px) {
  .admin-body:not(.admin-login-mode) .admin-heading { align-items: center; flex-direction: row; flex-wrap: wrap; }
  .admin-body:not(.admin-login-mode) .admin-heading-copy { flex: 1 1 520px; }
  .admin-section-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: visible;
  }
  .admin-login { grid-template-columns: 1fr 1fr; }
  .admin-login-copy,
  .admin-login-message { grid-column: 1 / -1; }
  .admin-competition-layout { grid-template-columns: 1fr; }
  .admin-competition-sidebar { max-height: none; position: static; overflow: visible; }
  .admin-competition-list { max-height: 320px; }
  .admin-evidence-row { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .admin-overview-destinations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-overview-columns { grid-template-columns: 1fr; }
  .admin-issue-columns { grid-template-columns: 1fr; }
  .admin-issue-domain-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-monthly-runtime-active { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-monthly-selection-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-monthly-selection-filters .admin-monthly-multi-filter .multi-filter-panel { right: auto; left: 0; }
  .admin-monthly-selection-filters .admin-monthly-multi-filter:nth-of-type(even) .multi-filter-panel { right: 0; left: auto; }
  .admin-monthly-selection-item { grid-template-columns: 28px minmax(0, 1fr) minmax(190px, auto); }
  .admin-monthly-selection-check { grid-row: 1 / 3; }
  .admin-monthly-selection-meta { grid-column: 2; }
  .admin-monthly-selection-state { grid-column: 3; grid-row: 1 / 3; }
  .admin-direction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-color-grid { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .admin-category-config-grid { grid-template-columns: 1fr; }
  .admin-map-workbench { grid-template-columns: 1fr; }
  .admin-map-library { max-height: none; position: static; display: block; overflow: visible; }
  .admin-map-library-list { max-height: 300px; }
  .admin-resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-analytics-grid { grid-template-columns: 1fr; }
  .admin-analytics-daily { grid-column: auto; }
  .admin-account-form .admin-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-team-create { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-team-create .button { width: 100%; }
}

@media (min-width: 901px) and (max-width: 1280px) {
  .admin-overview-destinations { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .admin-resource-grid { grid-template-columns: 1fr; }
  .admin-resource-upload { grid-template-columns: 1fr; }
  .admin-resource-upload .button { width: 100%; }
}

@media (max-width: 620px) {
  .admin-body:not(.admin-login-mode) .admin-page { padding-top: 20px; }
  .admin-body:not(.admin-login-mode) .admin-heading { align-items: stretch; flex-direction: column; gap: 12px; }
  .admin-body:not(.admin-login-mode) .admin-heading-copy { flex: 0 1 auto; }
  .admin-heading-actions .button { width: 100%; }
  .admin-section-tabs { display: none; }
  .admin-mobile-section-control { margin-bottom: 18px; display: grid; gap: 7px; color: var(--navy-800); font-size: 13px; font-weight: 750; }
  .admin-mobile-section-control select { width: 100%; min-width: 0; min-height: 48px; padding: 10px 14px; color: var(--navy-950); background-color: #fff; border: 1px solid var(--line); border-radius: 9px; font: inherit; font-size: 16px; }
  .admin-login-mode .admin-page { position: relative; grid-template-rows: minmax(0, 1fr); padding-block: 18px; }
  .admin-login-mode .admin-heading { position: absolute; inset: 18px 0 auto; flex-direction: row; }
  .admin-login-mode .admin-heading h1 { font-size: 16px; }
  .admin-login-mode .admin-heading .button { min-height: 36px; padding-inline: 12px; }
  .admin-login-mode .admin-login { margin-top: 0; padding: 30px 22px; }
  .admin-login { grid-template-columns: 1fr; }
  .admin-login-copy,
  .admin-login-message { grid-column: 1; }
  .admin-section-heading { align-items: stretch; flex-direction: column; }
  .admin-section-heading .button,
  .admin-days-select { width: 100%; }
  .admin-monthly-maintenance-summary { grid-template-columns: 1fr; padding: 0; }
  .admin-monthly-maintenance-summary > article { min-height: 108px; padding: 17px; }
  .admin-monthly-maintenance-summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-monthly-runtime-board { padding: 17px; border-radius: 14px; }
  .admin-monthly-runtime-board > header { align-items: stretch; flex-direction: column; gap: 12px; }
  .admin-monthly-runtime-board > header > strong { width: fit-content; white-space: normal; }
  .admin-monthly-runtime-active { grid-template-columns: 1fr; }
  .admin-monthly-runtime-item { padding: 14px; }
  .admin-monthly-runtime-queue-summary { grid-template-columns: 1fr; gap: 10px; }
  .admin-monthly-runtime-queue-summary ol { display: grid; overflow: visible; }
  .admin-monthly-runtime-queue-summary li > strong { max-width: none; }
  .admin-monthly-selection { padding: 17px; border-radius: 14px; }
  .admin-monthly-selection > header { grid-template-columns: 1fr; gap: 14px; }
  .admin-monthly-selection > header h3 { font-size: 20px; }
  .admin-monthly-selected-count { min-width: 0; grid-template-columns: auto auto; justify-content: start; align-items: baseline; gap: 7px; padding: 13px 15px; }
  .admin-monthly-selected-count strong { font-size: 27px; }
  .admin-monthly-selection-filters { grid-template-columns: 1fr; gap: 10px; }
  .admin-monthly-selection-filters .admin-monthly-multi-filter .multi-filter-panel {
    right: auto;
    left: 0;
    width: min(100%, 330px);
    min-width: 100%;
    max-width: 100%;
  }
  .admin-monthly-selection-filters .admin-monthly-multi-filter .multi-option,
  .admin-monthly-selection-filters .admin-monthly-multi-filter .multi-clear { min-height: 44px; }
  .admin-monthly-selection-filters .admin-monthly-multi-filter .month-options { width: 100%; }
  .admin-monthly-selection-toolbar { align-items: stretch; flex-direction: column; }
  .admin-monthly-selection-toolbar > div { display: grid; grid-template-columns: 1fr; }
  .admin-monthly-selection-toolbar .button { width: 100%; min-height: 44px; }
  .admin-monthly-selection-list { max-height: 560px; }
  .admin-monthly-selection-item { grid-template-columns: 24px minmax(0, 1fr); gap: 10px 11px; padding: 15px 13px; }
  .admin-monthly-selection-check { grid-row: 1; }
  .admin-monthly-selection-identity { grid-column: 2; }
  .admin-monthly-selection-meta { grid-column: 2; }
  .admin-monthly-selection-state { grid-column: 1 / -1; grid-row: auto; justify-items: stretch; padding-top: 3px; }
  .admin-monthly-selection-state > strong { width: fit-content; }
  .admin-monthly-selection-state > strong.is-attention { max-width: 100%; justify-content: flex-start; text-align: left; }
  .admin-monthly-selection-state .button { width: 100%; min-height: 44px; font-size: 12px; }
  .admin-monthly-outcomes-panel { grid-column: 1 / -1; }
  .admin-monthly-outcomes ul { grid-template-columns: 1fr; }
  .admin-monthly-outcomes summary { min-height: 44px; display: flex; align-items: center; }
  .admin-monthly-outcome-counts, .admin-monthly-outcomes summary { text-align: left; }
  .admin-monthly-selection > footer { align-items: stretch; flex-direction: column; }
  .admin-monthly-selection > footer .button { width: 100%; min-width: 0; }
  .admin-monthly-run-control { align-items: stretch; flex-direction: column; padding: 17px; }
  .admin-monthly-run-control-actions { display: grid; grid-template-columns: 1fr; justify-items: stretch; }
  .admin-monthly-run-control-actions > strong { width: fit-content; }
  .admin-monthly-run-control-actions .button { width: 100%; min-height: 44px; }
  .admin-monthly-token-usage { padding: 17px; }
  .admin-monthly-token-usage > header { grid-template-columns: 1fr; gap: 14px; }
  .admin-monthly-token-total { justify-items: start; padding: 14px 0 0; border-top: 1px solid #dce5ee; border-left: 0; text-align: left; }
  .admin-monthly-token-total > strong { font-size: 29px; }
  .admin-monthly-token-models { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-monthly-token-models article { padding: 13px; }
  .admin-monthly-token-models strong { font-size: 21px; }
  .admin-monthly-token-breakdown { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-monthly-token-recorded { text-align: left; }
  .admin-monthly-token-details > summary { align-items: flex-start; flex-direction: column; gap: 5px; padding: 14px 42px 14px 14px; }
  .admin-monthly-token-task > summary { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; padding: 14px 40px 14px 13px; }
  .admin-monthly-token-task-identity { grid-column: 1 / -1; }
  .admin-monthly-token-task-model { grid-column: 1 / -1; }
  .admin-monthly-token-task > summary > strong { grid-column: 1; width: fit-content; }
  .admin-monthly-token-task > summary time { grid-column: 2; }
  .admin-monthly-token-task-body { padding: 12px; }
  .admin-monthly-token-task-meta,
  .admin-monthly-token-task-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-monthly-token-detail-pagination { justify-content: space-between; gap: 7px; padding-inline: 10px; }
  .admin-monthly-token-detail-pagination button { min-height: 44px; }
  .admin-decision-card { padding: 18px 15px; border-radius: 13px; }
  .admin-decision-heading { align-items: stretch; flex-direction: column; }
  .admin-decision-heading > strong { align-self: flex-start; }
  .admin-decision-heading :is(h4, h5) { font-size: 17px; }
  .admin-decision-changes > article > div { grid-template-columns: 1fr; }
  .admin-decision-changes section + section { border-top: 1px solid #dfe7ee; border-left: 0; }
  .admin-decision-changes section > p { max-height: 240px; }
  .admin-decision-evidence .admin-maintenance-ai-evidence-list li { flex-direction: column; }
  .admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list li { flex-direction: row; }
  .admin-decision-actions { display: grid; grid-template-columns: 1fr; }
  .admin-decision-actions .button { width: 100%; min-height: 46px; }
  .admin-form-grid { grid-template-columns: 1fr; }
  .admin-span-2 { grid-column: 1; }
  .admin-secondary-heading { align-items: stretch; flex-direction: column; }
  .admin-maintenance-ai-review { padding: 12px; }
  .admin-maintenance-ai-review-heading { align-items: stretch; flex-direction: column; }
  .admin-maintenance-ai-badges { justify-content: flex-start; }
  .admin-maintenance-ai-diff > div { grid-template-columns: 1fr; }
  .admin-maintenance-ai-diff i { transform: rotate(90deg); }
  .admin-maintenance-ai-evidence-list li { align-items: flex-start; flex-direction: column; }
  .admin-maintenance-ai-review-actions { display: grid; grid-template-columns: 1fr; }
  .admin-maintenance-ai-review-actions .button { width: 100%; min-height: 44px; }
  .admin-maintenance-ai-confirm > div { display: grid; grid-template-columns: 1fr; }
  .admin-maintenance-ai-confirm .button { width: 100%; min-height: 44px; }
  .admin-issue-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-issue-tabs button { min-height: 50px; }
  .admin-issue-domain-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-issue-domain-filters button { min-height: 76px; gap: 8px; padding: 12px; }
  .admin-issue-domain-heading { gap: 7px; }
  .admin-issue-domain-heading b { width: 28px; height: 28px; flex-basis: 28px; }
  .admin-issue-domain-heading span { font-size: 12px; }
  .admin-issue-domain-total { gap: 3px; }
  .admin-issue-domain-total strong { font-size: 20px; }
  .admin-issue-panel { padding: 14px; }
  .admin-lifecycle-panel { padding: 0; }
  .admin-batch-toolbar { align-items: stretch; flex-direction: column; gap: 12px; padding: 13px; }
  .admin-batch-pagination { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-batch-pagination button { width: 100%; min-width: 0; min-height: 44px; }
  .admin-lifecycle-domain-group { padding: 10px; }
  .admin-lifecycle-history-card { grid-template-columns: 14px minmax(0, 1fr); padding: 15px 14px; }
  .admin-lifecycle-history-actions { grid-column: 2; width: 100%; justify-content: flex-start; margin-top: 8px; }
  .admin-lifecycle-history-actions .button { flex: 1 1 150px; }
  .admin-lifecycle-ai-history-comparisons article > div { grid-template-columns: 1fr; }
  .admin-lifecycle-ai-history-comparisons section { border-right: 0; border-bottom: 1px solid #e3ebf2; }
  .admin-lifecycle-ai-history-comparisons section:last-child { border-bottom: 0; }
  .admin-maintenance-form { overflow: hidden; }
  .admin-maintenance-grid,
  .admin-maintenance-mode { grid-template-columns: 1fr; }
  .admin-availability-options,
  .admin-domain-fields { grid-template-columns: 1fr; }
  .admin-availability-conflict { grid-template-columns: 1fr; }
  .admin-availability-conflict button { grid-column: 1; grid-row: auto; width: 100%; }
  .admin-anomaly-reason { grid-template-columns: 1fr; }
  .admin-anomaly-reason-note { grid-column: 1; }
  .admin-maintenance-months > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-maintenance-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-maintenance-actions .button { width: 100%; min-width: 0; padding-inline: 8px; }
  .admin-issue-card-heading { flex-direction: column; }
  .admin-issue-card-heading > strong { align-self: flex-start; }
  .admin-issue-card dl > div { grid-template-columns: 1fr; }
  .admin-direction-grid,
  .admin-resource-grid,
  .admin-association-activity-grid { grid-template-columns: 1fr; }
  .admin-association-field-row { grid-template-columns: 1fr; }
  .admin-evidence-heading { align-items: stretch; flex-direction: column; }
  .admin-evidence-heading .button { width: 100%; }
  .admin-evidence-row { grid-template-columns: 1fr; }
  .admin-evidence-row > .form-field:nth-of-type(n),
  .admin-evidence-row .admin-evidence-url { grid-column: 1; }
  .admin-evidence-remove { width: 100%; }
  .admin-editor-form { padding: 20px 16px; }
  .admin-editor-heading { flex-direction: column; }
  .admin-editor-actions { flex-direction: column; }
  .admin-publish-actions { align-items: stretch; }
  .admin-publish-actions .button { margin-left: 0; }
  .admin-editor-actions .button { width: 100%; }
  .admin-map-actions { align-items: stretch; }
  .admin-map-actions > div { width: 100%; display: grid; grid-template-columns: 1fr; }
  .admin-version-history li { grid-template-columns: 1fr; gap: 2px; }
  .admin-color-grid,
  .admin-category-config-grid,
  .admin-stat-grid { grid-template-columns: 1fr; }
  .admin-category-config-row { grid-template-columns: 1fr; }
  .admin-map-row-heading { align-items: flex-start; flex-direction: column; }
  .admin-map-row-heading > div:last-child { width: 100%; justify-content: flex-end; }
  .admin-map-row-title { width: 100%; }
  .admin-map-summary { justify-content: flex-start; }
  .admin-analytics-trend > header { flex-direction: column; }
  .admin-analytics-trend svg { min-height: 190px; }
  .admin-account-form .admin-form-grid { grid-template-columns: 1fr; }
  .admin-account-actions .button { width: 100%; }
  .admin-team-panel { padding: 18px 14px; }
  .admin-team-create,
  .admin-team-fields { grid-template-columns: 1fr; }
  .admin-team-item-heading,
  .admin-team-item-actions { align-items: stretch; flex-direction: column; }
  .admin-overview-destinations { grid-template-columns: 1fr; gap: 12px; }
  .admin-overview-destination { min-height: 196px; padding: 20px; }
  .admin-overview-panel { padding: 18px 14px; }
  .admin-attention-row { grid-template-columns: 82px minmax(0, 1fr); }
  .admin-map-row,
  .admin-config-panel,
  .admin-table-card { padding: 18px 14px; }
}

/* 2026-08 home cover refresh */
@media (max-width: 1120px) {
  .home-hero h1 { font-size: clamp(42px, 5vw, 58px); }
  .home-title-phrase { display: block; }
  .home-quick-links .quick-link { grid-template-columns: 44px minmax(0, 1fr); gap: 11px; padding: 16px 14px; }
  .quick-icon { width: 44px; height: 44px; }
  .quick-icon img { width: 26px; height: 26px; }
}

@media (max-width: 900px) {
  .header-search { display: none; }
  .home-hero { min-height: auto; padding: 44px 34px; }
  .home-hero-copy { max-width: 720px; margin-inline: auto; }
  .home-quick-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .home-hero { width: min(calc(100% - 24px), 1320px); min-height: auto; padding: 34px 20px 30px; text-align: left; }
  .home-hero h1 { margin-bottom: 16px; font-size: clamp(36px, 10vw, 48px); line-height: 1.14; }
  .home-hero-copy > p { margin-bottom: 24px; font-size: 16px; }
  .home-hero .hero-search { min-height: 58px; }
  .home-hero .hero-search .button { min-height: 44px; }
  .hot-searches { gap: 6px; }
  .home-quick-links { grid-template-columns: 1fr; gap: 10px; margin-top: 18px; }
  .home-quick-links .quick-link { min-height: 104px; grid-template-columns: 48px minmax(0, 1fr); align-items: center; padding: 14px 16px; }
  .quick-icon { width: 48px; height: 48px; }
  .home-quick-links .quick-copy > span { min-height: 0; }
  .home-catalog-download { min-height: 76px; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; padding: 12px; }
  .home-catalog-download > .catalog-download-icon { width: 42px; height: 42px; }
  .catalog-download-copy strong { font-size: 13px; line-height: 1.4; }
  .home-catalog-download > .catalog-download-action { grid-column: 1 / -1; width: 100%; }
  .home-catalog-summary { margin-top: 13px; gap: 5px 16px; font-size: 11px; }
  .home-catalog-summary strong { font-size: 13px; }
}

/* 2026-08-04 AI competition landing page */
.ai-cover {
  position: relative;
  display: flex;
  min-height: calc(100dvh - 74px);
  align-items: center;
  padding: 0;
  overflow: hidden;
  background-color: #eef5ff;
  background-image: url("assets/ai-competition-hero-v8.webp"), linear-gradient(145deg, #f4f8ff, #eaf2ff);
  background-position: center top, center;
  background-size: cover, cover;
  background-repeat: no-repeat;
  isolation: isolate;
}

.ai-cover::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(244, 248, 255, 0.82) 0%, rgba(244, 248, 255, 0.72) 40%, rgba(244, 248, 255, 0.32) 58%, rgba(244, 248, 255, 0) 76%);
}

.ai-cover .ai-hero-inner {
  display: flex;
  min-height: calc(100dvh - 74px);
  grid-template-columns: none;
  align-items: center;
  padding-block: clamp(34px, 5.2vh, 58px);
}

.ai-cover .ai-hero-copy {
  width: min(52%, 680px);
  max-width: 680px;
}

.ai-cover .ai-eyebrow,
.ai-map-section .ai-eyebrow {
  color: #3863df;
  letter-spacing: 0.08em;
}

.ai-cover h1 {
  max-width: 680px;
  margin: 12px 0 24px;
  color: #0a1f46;
  font-size: clamp(50px, 5.1vw, 78px);
  line-height: 1.25;
  letter-spacing: 0.012em;
  text-wrap: wrap;
}

.ai-title-line,
.ai-typing-line { display: block; }
.ai-typing-line { min-height: 1.2em; color: #3564df; }
.ai-typing-line #ai-typing-text {
  display: inline-block;
  clip-path: inset(0 100% 0 0);
  animation: ai-text-reveal 1.15s steps(6, end) 180ms forwards;
}
.ai-typing-caret {
  width: 3px;
  height: 0.82em;
  display: inline-block;
  margin-left: 0.1em;
  background: currentColor;
  border-radius: 2px;
  opacity: 0;
  animation: ai-caret-blink 0.86s step-end 1.33s infinite;
}
@keyframes ai-caret-blink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
@keyframes ai-text-reveal { to { clip-path: inset(0 0 0 0); } }

.ai-cover .ai-hero-copy > p:not(.ai-eyebrow) {
  width: min(100%, 456px);
  max-width: 456px;
  margin: 0;
  color: #506483;
  font-size: clamp(16px, 1.28vw, 19px);
  line-height: 1.78;
  letter-spacing: 0.018em;
}
.ai-cover .ai-hero-subtitle > span { display: block; }
@media (min-width: 360px) {
  .ai-cover .ai-hero-subtitle > span { white-space: nowrap; }
}

/* The header and hero copy are file-backed and visible immediately. Only
   below-the-fold content that is still configurable waits for PostgreSQL. */
.site-config-pending #ai-club .ai-club-layout,
.site-config-pending .home-catalog-download,
.site-config-pending .site-footer .footer-inner { visibility: hidden; }
.ai-cover .ai-hero-copy > p[data-site-config-content] { min-height: 5.34em; }

.ai-cover .ai-hero-actions {
  width: min(100%, 420px);
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 16px;
  margin-top: 36px;
}

.ai-cover .ai-hero-actions .button {
  flex: 1 1 196px;
  min-width: 196px;
  min-height: 58px;
  padding-inline: 18px;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 750;
  white-space: nowrap;
}

.ai-cover .ai-hero-actions .button-primary {
  color: #fff;
  background: linear-gradient(135deg, #176bf0, #6559df);
  border-color: transparent;
  box-shadow: 0 14px 32px rgba(54, 83, 220, 0.24);
}

.ai-cover .ai-hero-actions .button-secondary {
  color: #183b83;
  background: rgba(255, 255, 255, 0.76);
  border-color: rgba(80, 116, 211, 0.42);
  backdrop-filter: blur(9px);
}

.ai-cover .ai-hero-actions svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.ai-hero-club-promo {
  margin-top: 20px;
  color: #607492;
  font-size: 12px;
  line-height: 1.65;
  letter-spacing: 0.012em;
}

.ai-hero-club-promo p { margin: 0; }
.ai-hero-club-promo a {
  margin-inline: 3px;
  color: #285ed0;
  font-weight: 750;
  text-decoration: underline;
  text-decoration-color: rgba(40, 94, 208, 0.42);
  text-underline-offset: 3px;
}
.ai-hero-club-promo a:hover { color: #1747b6; text-decoration-color: currentColor; }

#ai-map,
#ai-club {
  scroll-margin-top: 74px;
}

.ai-map-lead h2 {
  margin: 8px 0 12px;
  color: #0a1f46;
  font-size: clamp(32px, 3.1vw, 46px);
  line-height: 1.25;
  letter-spacing: 0.006em;
}

.ai-map-lead > p:last-child {
  max-width: 790px;
  margin: 0;
  color: #5c6f8d;
  font-size: 15px;
  line-height: 1.95;
  letter-spacing: 0.012em;
}

.ai-map-section {
  padding: 52px 0 72px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 55%, #f6f9ff 100%);
}

.ai-map-section .section-heading {
  margin-bottom: 46px;
}

.ai-map-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 0.72fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
}

.ai-map-lead {
  max-width: 900px;
}

.ai-map-lead > p:last-child {
  min-height: 54px;
}

.ai-level-guide {
  padding: 25px 27px;
  color: #536884;
  background: linear-gradient(145deg, rgba(242, 247, 255, 0.96), rgba(246, 242, 255, 0.94));
  border: 1px solid #d4ddf2;
  border-radius: 21px;
  box-shadow: 0 15px 38px rgba(68, 87, 155, 0.09);
}

.ai-level-guide > summary {
  display: block;
  color: #17376f;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.ai-level-guide > summary::-webkit-details-marker { display: none; }
.ai-level-guide > summary::after { content: "+"; float: right; margin-left: 12px; }
.ai-level-guide[open] > summary { margin-bottom: 16px; }
.ai-level-guide[open] > summary::after { content: "−"; }

.ai-level-guide dl {
  display: grid;
  gap: 11px;
  margin: 0;
}

.ai-level-guide dl > div {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.ai-level-guide dt {
  color: #3668d8;
  font-size: 13px;
  font-weight: 800;
}

.ai-level-guide dd {
  margin: 0;
  font-size: 12px;
  line-height: 1.72;
  letter-spacing: 0.01em;
}

.ai-map-section .ai-difficulty-tabs {
  position: sticky;
  z-index: 6;
  top: 74px;
  gap: 14px;
  margin-bottom: 24px;
  padding-block: 6px;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}

.ai-map-section .ai-difficulty-tabs button {
  min-height: 50px;
  padding: 9px 18px;
  text-align: center;
  color: #49617e;
  background: #f7f9fd;
  border: 1px solid #d7dfec;
  border-radius: 14px;
  box-shadow: none;
}

.ai-map-section .ai-difficulty-tabs strong {
  display: block;
  color: inherit;
  font-size: 16px;
}

.ai-map-section .ai-difficulty-tabs button:nth-child(1) { color: #176c87; background: #f0fbfd; border-color: #bbe1e8; }
.ai-map-section .ai-difficulty-tabs button:nth-child(2) { color: #275fc6; background: #f0f5ff; border-color: #bed0f4; }
.ai-map-section .ai-difficulty-tabs button:nth-child(3) { color: #7144c4; background: #f7f2ff; border-color: #d8c7f4; }
.ai-map-section .ai-difficulty-tabs button:nth-child(1)[aria-selected="true"] { color: #fff; background: #217f97; border-color: #217f97; }
.ai-map-section .ai-difficulty-tabs button:nth-child(2)[aria-selected="true"] { color: #fff; background: #3d69d1; border-color: #3d69d1; }
.ai-map-section .ai-difficulty-tabs button:nth-child(3)[aria-selected="true"] { color: #fff; background: #7750c8; border-color: #7750c8; }

.ai-map-section .ai-event-grid { gap: 18px; }
.ai-map-section .ai-event-card {
  min-height: 210px;
  padding: 26px 28px;
  border-radius: 19px;
  box-shadow: 0 12px 34px rgba(48, 73, 132, 0.055);
}
.ai-map-section .ai-event-card h3 { margin-block: 17px 10px; line-height: 1.48; letter-spacing: 0.01em; }
.ai-map-section .ai-event-focus { line-height: 1.7; letter-spacing: 0.008em; }
.ai-map-section .ai-event-actions > div > .button {
  width: 112px;
  justify-content: center;
}
.ai-map-section .ai-pagination { scroll-margin-bottom: 18px; }

@media (min-width: 901px) {
  .ai-map-section .ai-event-grid {
    min-height: 602px;
    align-content: start;
  }
}

.ai-open-section { padding: 96px 0 106px; }
.ai-open-section .section-heading { margin-bottom: 38px; }
.ai-open-section .section-heading h2 { line-height: 1.26; letter-spacing: 0.01em; }
.ai-open-section .section-heading p { line-height: 1.85; letter-spacing: 0.01em; }
.ai-open-section .compact-open-carousel { gap: 22px; }
.ai-open-section .compact-open-carousel .open-slide { min-height: 472px; padding: 31px; border-radius: 22px; }
.ai-open-section .compact-open-carousel .open-slide h3 { line-height: 1.4; letter-spacing: 0.012em; }
.ai-open-section .compact-open-carousel .open-window { margin-top: 0; }
.ai-open-section .compact-open-carousel .open-summary {
  min-height: 8.9em;
  display: -webkit-box;
  overflow: hidden;
  line-height: 1.78;
  letter-spacing: 0.008em;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
}
.ai-open-section .compact-open-carousel .open-window p {
  min-height: 8.9em;
  line-height: 1.78;
  letter-spacing: 0.008em;
  -webkit-line-clamp: 5;
}

.ai-club-section {
  padding: 110px 0 116px;
  background: linear-gradient(145deg, #f4f8ff 0%, #f7f5ff 52%, #eefaff 100%);
}

.ai-club-section .ai-club-layout {
  grid-template-columns: minmax(0, 1.45fr) minmax(330px, 0.72fr);
  gap: clamp(42px, 7vw, 92px);
  align-items: center;
}

.ai-club-brand {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-bottom: 24px;
}

.ai-club-brand > img {
  width: 112px;
  height: 112px;
  flex: 0 0 auto;
  object-fit: contain;
}

.ai-club-section .ai-club-eyebrow {
  margin-bottom: 6px;
  padding-left: 13px;
  color: #3d69d1;
  border-left-color: #6184e7;
}

.ai-club-section .ai-club-layout h2 {
  margin: 0;
  color: #0a1f46;
  font-size: clamp(29px, 2.45vw, 38px);
  line-height: 1.28;
  letter-spacing: 0.012em;
  white-space: nowrap;
}

.ai-club-section .ai-club-layout > div > p {
  max-width: 780px;
  color: #5a6d89;
  line-height: 1.95;
  letter-spacing: 0.012em;
}

.ai-club-section .ai-activity-grid {
  margin-top: 40px;
  border-color: #d4def0;
}

.ai-club-section .ai-activity {
  min-height: 142px;
  padding-top: 26px;
  padding-bottom: 26px;
  border-color: #d4def0;
}

.ai-club-section .ai-activity strong { color: #142c55; font-size: 17px; line-height: 1.45; }
.ai-club-section .ai-activity p { color: #63748f; font-size: 14px; line-height: 1.76; letter-spacing: 0.008em; }

.ai-club-section .ai-join-card {
  padding: 39px;
  color: #0a1f46;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.94), rgba(238, 246, 255, 0.94));
  border: 1px solid #c5d7f0;
  border-radius: 27px;
  box-shadow: 0 24px 60px rgba(45, 72, 150, 0.12);
}

.ai-club-section .ai-join-card .ai-eyebrow { color: #5d65d5; }
.ai-club-section .ai-join-card h3 { color: #0a1f46; font-size: 27px; line-height: 1.35; letter-spacing: 0.01em; }
.ai-club-section .ai-join-card p { color: #60718c; line-height: 1.88; letter-spacing: 0.01em; }

.ai-join-qr {
  display: grid;
  width: fit-content;
  justify-items: center;
  margin: 24px auto;
  padding: 14px;
  background: #fff;
  border: 1px solid #d8e2f1;
  border-radius: 17px;
  box-shadow: 0 10px 25px rgba(43, 66, 127, 0.08);
}

.ai-join-qr img {
  width: 150px;
  height: 150px;
  image-rendering: pixelated;
}

.ai-club-section .ai-join-card .button-primary {
  background: linear-gradient(135deg, #286fdc, #6659d9);
  border-color: transparent;
  box-shadow: 0 12px 28px rgba(52, 83, 200, 0.2);
}

@media (max-width: 1120px) {
  .ai-cover .ai-hero-copy { width: min(55%, 650px); }
  .ai-cover .ai-hero-copy > p:not(.ai-eyebrow) { max-width: 32em; }
  .ai-club-section .ai-club-layout { grid-template-columns: 1fr minmax(310px, 0.68fr); gap: 38px; }
}

@media (max-width: 900px) {
  #ai-map,
  #ai-club { scroll-margin-top: 66px; }

  .ai-cover {
    min-height: calc(100dvh - 66px);
    background-image:
      radial-gradient(circle at 78% 22%, rgba(111, 131, 246, 0.16), transparent 28%),
      radial-gradient(circle at 22% 78%, rgba(74, 196, 215, 0.13), transparent 34%),
      linear-gradient(145deg, #f7faff, #eaf2ff);
    background-position: center;
    background-size: cover;
  }
  .ai-cover .ai-hero-inner { min-height: calc(100dvh - 66px); }
  .ai-cover .ai-hero-copy { width: min(68%, 600px); }
  .ai-cover h1 { font-size: clamp(40px, 6.4vw, 54px); }
  .ai-cover .ai-hero-copy > p:not(.ai-eyebrow) { max-width: 26em; }
  .ai-club-section .ai-club-layout { grid-template-columns: 1fr; }
  .ai-club-section .ai-join-card { width: min(100%, 520px); }
  .ai-map-heading { grid-template-columns: 1fr; gap: 20px; align-items: stretch; }
  .ai-level-guide { max-width: 620px; }
}

@media (max-width: 620px) {
  .ai-cover {
    min-height: calc(100dvh - 66px);
  }
  .ai-cover .ai-hero-inner { min-height: calc(100dvh - 66px); padding-block: 44px; }
  .ai-cover .ai-hero-copy { width: 100%; max-width: 520px; }
  .ai-cover h1 { margin-top: 10px; font-size: clamp(35px, 9vw, 42px); line-height: 1.18; }
  .ai-cover .ai-hero-copy > p:not(.ai-eyebrow) { max-width: 100%; font-size: clamp(12px, 3.3vw, 14px); line-height: 1.75; }
  .ai-cover .ai-hero-actions { width: min(100%, 366px); gap: 10px; margin-top: 24px; }
  .ai-cover .ai-hero-actions .button { flex: 1 1 0; min-width: 0; min-height: 46px; padding-inline: 10px; font-size: 14px; white-space: nowrap; }
  .ai-hero-club-promo { max-width: 31em; margin-top: 16px; font-size: 11px; }
  .ai-map-section,
  .ai-club-section { padding-block: 62px; }
  .ai-map-lead > p:last-child { min-height: 0; }
  .ai-level-guide { padding: 17px; }
  .ai-map-section,
  .ai-open-section,
  .ai-club-section { padding-block: 72px; }
  .ai-map-section .section-heading,
  .ai-open-section .section-heading { margin-bottom: 28px; }
  .ai-map-section .ai-event-card { min-height: 0; padding: 22px 20px; border-radius: 16px; }
  .ai-open-section .compact-open-carousel .open-slide { padding: 25px; }
  .ai-club-section .ai-activity { min-height: 0; padding-block: 22px; }
  .ai-club-section .ai-join-card { padding: 27px 22px; border-radius: 22px; }
  .ai-map-section .ai-difficulty-tabs { gap: 7px; }
  .ai-map-section .ai-difficulty-tabs { top: 66px; }
  .ai-map-section .ai-difficulty-tabs button { min-height: 46px; padding: 9px; border-radius: 11px; }
  .ai-club-brand { align-items: flex-start; gap: 14px; }
  .ai-club-brand > img { width: 76px; height: 76px; }
  .ai-club-section .ai-club-layout h2 { font-size: 29px; line-height: 1.25; }
  .ai-club-section .ai-club-layout h2 { white-space: normal; }
  .ai-club-section .ai-activity-grid { grid-template-columns: 1fr; }
  .ai-club-section .ai-activity { min-height: 0; }
  .ai-club-section .ai-join-card { padding: 26px 20px; }
}

/* Student-facing polish shared by the administration refresh. */
.direction-browser {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dfe7f0;
  border-radius: 14px;
}
.direction-tabs {
  gap: 8px;
  padding: 12px 14px;
  background: #f5f8fc;
  border: 0;
  border-bottom: 1px solid #dfe7f0;
  border-radius: 0;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: 14px;
  scrollbar-width: none;
}
.direction-tabs::-webkit-scrollbar { display: none; }
.direction-tabs button { scroll-snap-align: start; }
.direction-browser .direction-grid { border: 0; border-radius: 0; }
.direction-browser .direction-card { display: flex; flex-direction: column; }
.direction-browser .direction-card h3 { overflow-wrap: anywhere; }
.direction-browser .direction-card > .detail-link { align-self: flex-start; margin-top: auto; }
.direction-browser-footer {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 12px 28px 14px;
  background: #fff;
  border-top: 1px solid #dfe7f0;
}
.direction-more-link { min-height: 34px; padding: 7px 0 7px 10px; font-size: 13px; }
.ai-map-section .ai-event-card { padding-bottom: 36px; }
.fee-fact > small { display: none; }

/* Leave a small visual cushion below the sticky header after map pagination. */
#ai-difficulty-tabs { scroll-margin-top: 94px; }

/* Keep the action row and its detail link visually grouped on both entry pages. */
#open-section .compact-open-carousel .open-slide > .open-detail-link,
#ai-open-section .compact-open-carousel .open-slide > .open-detail-link {
  margin-top: 16px;
}

/* A desktop map page should show the tabs, four cards and pagination together. */
@media (min-width: 901px) {
  #open-section .compact-open-carousel { padding-bottom: 2px; }
  #open-section .compact-open-carousel .open-slide {
    min-height: clamp(490px, calc(100dvh - 235px), 515px);
  }
  .ai-map-section .ai-difficulty-tabs { margin-bottom: 14px; }
  .ai-map-section .ai-event-grid {
    min-height: max(460px, calc(100dvh - 296px));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-content: stretch;
  }
  .ai-map-section .ai-event-card {
    min-height: 0;
    padding: 17px 22px;
  }
  .ai-map-section .ai-event-card h3 {
    display: -webkit-box;
    overflow: hidden;
    margin-block: 10px 5px;
    font-size: 16px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .ai-map-section .ai-event-focus {
    display: -webkit-box;
    overflow: hidden;
    margin-bottom: 5px;
    font-size: 12px;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }
  .ai-map-section .ai-event-actions { padding-top: 8px; }
  .ai-map-section .ai-pagination { margin-top: 14px; }
}

/* Keep both home browsing panels complete on shorter laptop viewports. */
@media (min-width: 901px) and (max-height: 760px) {
  #direction-section { scroll-margin-top: 58px; }
  .direction-section { padding-block: 16px; }
  .direction-section .section-heading { margin-bottom: 16px; }
  .direction-section .direction-card { padding-block: 18px; }
  .direction-browser-footer { min-height: 48px; padding-block: 7px 9px; }

  #open-section { padding-block: 12px; }
  #open-section .section-heading { margin-bottom: 10px; }
  #open-section .compact-open-carousel .open-slide {
    min-height: clamp(472px, calc(100dvh - 196px), 500px);
  }
}

@media (max-width: 620px) {
  .direction-tabs { margin-inline: 0; padding: 9px 10px; scroll-snap-type: inline proximity; }
  .direction-tabs button { min-height: 40px; padding-inline: 12px; }
  .direction-browser-footer { min-height: 54px; padding: 9px 16px 11px; }
  .direction-more-link { min-height: 40px; padding-block: 10px; }
  .ai-map-section .ai-event-card { padding-bottom: 30px; }
  #ai-difficulty-tabs { scroll-margin-top: 82px; }
}

@media (prefers-reduced-motion: reduce) {
  .ai-typing-line #ai-typing-text { clip-path: none; animation: none; }
  .ai-typing-caret { opacity: 1; animation: none; }
}

/* Competition assistant */
.competition-assistant {
  position: fixed;
  z-index: 1200;
  right: 24px;
  bottom: 24px;
  pointer-events: none;
}

.competition-assistant-launcher,
.competition-assistant-panel { pointer-events: auto; }

.competition-assistant img {
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

.competition-assistant.is-open {
  width: 380px;
  height: min(600px, calc(100vh - 40px));
}

.competition-assistant-launcher {
  position: relative;
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--navy-950);
  background: linear-gradient(145deg, #fff, #e1f4ff 56%, #e8f9f3);
  border: 1px solid #b9ddf3;
  border-radius: 23px;
  box-shadow: 0 14px 32px rgba(45, 119, 172, 0.18), 0 0 0 5px rgba(123, 205, 238, 0.12);
  cursor: pointer;
  touch-action: manipulation;
  user-select: none;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.competition-assistant-launcher:hover {
  transform: translateY(-3px) rotate(-1deg);
  box-shadow: 0 18px 38px rgba(45, 119, 172, 0.22), 0 0 0 7px rgba(123, 205, 238, 0.14);
}

.competition-assistant-launcher-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  background: transparent;
  border-radius: 18px;
}

.competition-assistant-launcher-icon img {
  width: 52px;
  height: 52px;
  object-fit: contain;
}

.competition-assistant-launcher-label {
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  width: max-content;
  padding: 10px 15px;
  color: #123c5d;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(220, 246, 255, 0.99) 62%, rgba(226, 250, 242, 0.99));
  border: 1px solid #82cbea;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(39, 104, 147, 0.2), 0 0 0 4px rgba(109, 204, 235, 0.1);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  opacity: 0;
  transform: translate(6px, -50%);
  transition: opacity 140ms ease, transform 140ms ease;
  pointer-events: none;
}

.competition-assistant-launcher-label::after {
  content: "";
  position: absolute;
  right: -7px;
  top: 50%;
  width: 12px;
  height: 12px;
  background: #e1f7fb;
  border-top: 1px solid #82cbea;
  border-right: 1px solid #82cbea;
  transform: translateY(-50%) rotate(45deg);
}

.competition-assistant-launcher:hover .competition-assistant-launcher-label,
.competition-assistant-launcher:focus-visible .competition-assistant-launcher-label {
  opacity: 1;
  transform: translate(0, -50%);
}

.competition-assistant.has-intro-message .competition-assistant-launcher-label {
  opacity: 1;
  transform: translate(0, -50%);
  animation: competition-assistant-intro-message 6.2s ease both;
}

.competition-assistant.has-intro-message .competition-assistant-launcher {
  animation: competition-assistant-intro-wave 720ms ease 180ms both;
}

@keyframes competition-assistant-intro-message {
  0% { opacity: 0; transform: translate(14px, -50%) scale(0.9); }
  10%, 86% { opacity: 1; transform: translate(0, -50%) scale(1); }
  100% { opacity: 0; transform: translate(4px, -50%) scale(0.98); }
}

@keyframes competition-assistant-intro-wave {
  0%, 100% { transform: translateY(0) rotate(0); }
  35% { transform: translateY(-7px) rotate(-4deg); }
  68% { transform: translateY(-2px) rotate(3deg); }
}

.competition-assistant-panel {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: var(--ink);
  background: #fff;
  border: 1px solid #cfe3f1;
  border-radius: 20px;
  box-shadow: 0 28px 70px rgba(39, 83, 117, 0.18), 0 8px 24px rgba(39, 83, 117, 0.08);
  transform-origin: right bottom;
  animation: competition-assistant-enter 180ms ease-out both;
}

.competition-assistant.is-open .competition-assistant-launcher { visibility: hidden; }

@keyframes competition-assistant-enter {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.competition-assistant-header {
  position: relative;
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 13px 12px 16px;
  color: #173854;
  background: linear-gradient(112deg, #f8fcff, #dff3ff 62%, #e8f8f3);
  border-bottom: 1px solid #c7e3f2;
}

.competition-assistant-avatar,
.competition-assistant-message-avatar {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 12px;
}

.competition-assistant-avatar {
  width: 46px;
  height: 46px;
  background: #fff;
  border: 1px solid #c7e3f2;
  box-shadow: 0 6px 18px rgba(47, 113, 156, 0.12);
}

.competition-assistant-avatar img,
.competition-assistant-message-avatar img {
  width: 42px;
  height: 42px;
  object-fit: contain;
}

.competition-assistant-heading { min-width: 0; flex: 1; }
.competition-assistant-heading strong { display: block; font-size: 16px; letter-spacing: 0.01em; }
.competition-assistant-heading small { display: flex; align-items: center; gap: 6px; margin-top: 1px; color: #55748d; font-size: 11px; }
.competition-assistant-heading i { width: 7px; height: 7px; background: #55d6b7; border-radius: 50%; box-shadow: 0 0 0 3px rgba(85, 214, 183, 0.14); }

.competition-assistant-reset,
.competition-assistant-close {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  color: #42718f;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid #c7e1f1;
  border-radius: 10px;
  line-height: 0;
  cursor: pointer;
  touch-action: manipulation;
}

.competition-assistant-reset svg,
.competition-assistant-close svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.competition-assistant-reset:hover,
.competition-assistant-close:hover { color: #205b80; background: #fff; }
.competition-assistant-reset:disabled { opacity: 0.45; cursor: not-allowed; }

.competition-assistant-main {
  min-height: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  background: #f7fbfe;
}

.competition-assistant-messages {
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 18px 15px 10px;
  scrollbar-width: thin;
  scrollbar-color: #cdd8e6 transparent;
}

.competition-assistant-message {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 14px;
}

.competition-assistant-message.is-user { flex-direction: row-reverse; }

.competition-assistant-message-avatar {
  width: 29px;
  height: 29px;
  color: #fff;
  background: #5a8fb5;
  font-size: 10px;
  font-weight: 700;
}

.competition-assistant-message.is-assistant .competition-assistant-message-avatar {
  background: #fff;
  border: 1px solid #cde6f3;
}

.competition-assistant-message-avatar.has-image {
  background: #fff;
  border: 1px solid #cde6f3;
  overflow: hidden;
}

.competition-assistant-message-avatar img { width: 27px; height: 27px; }
.competition-assistant-message-avatar.has-image img { object-fit: cover; border-radius: inherit; }

.competition-assistant-message-body {
  min-width: 0;
  max-width: calc(100% - 38px);
}

.competition-assistant-message-copy {
  width: fit-content;
  max-width: 100%;
  margin: 0;
  padding: 10px 12px;
  box-sizing: border-box;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 5px 14px 14px 14px;
  box-shadow: 0 4px 12px rgba(24, 48, 82, 0.045);
  font-size: 13px;
  line-height: 1.7;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.competition-assistant-message-copy :is(p, ul, ol, blockquote, pre, h3, h4, h5, h6) { margin: 0; }
.competition-assistant-message-copy :is(p, ul, ol, blockquote, pre) + :is(p, ul, ol, blockquote, pre, h3, h4, h5, h6) { margin-top: 0.58em; }
.competition-assistant-message-copy :is(h3, h4, h5, h6) {
  color: inherit;
  font-size: 1.02em;
  line-height: 1.45;
}
.competition-assistant-message-copy :is(ul, ol) {
  padding-left: 1.3em;
}
.competition-assistant-message-copy li + li { margin-top: 0.22em; }
.competition-assistant-message-copy blockquote {
  padding-left: 0.78em;
  color: #53677d;
  border-left: 3px solid #c8d9ea;
}
.competition-assistant-message-copy code {
  padding: 0.08em 0.32em;
  color: #0f4d7e;
  background: #eef6ff;
  border: 1px solid #d6e5f5;
  border-radius: 4px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size: 0.92em;
}
.competition-assistant-message-copy pre {
  max-width: min(100%, 520px);
  padding: 9px 10px;
  overflow: auto;
  color: #17324d;
  background: #f4f8fc;
  border: 1px solid #d7e4f0;
  border-radius: 8px;
}
.competition-assistant-message-copy pre code {
  display: block;
  padding: 0;
  background: transparent;
  border: 0;
  white-space: pre;
}
.competition-assistant-message-copy a {
  color: #075abd;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.competition-assistant-message.is-user .competition-assistant-message-copy {
  color: #fff;
  background: #4b91d2;
  border-color: #4b91d2;
  border-radius: 14px 5px 14px 14px;
}

.competition-assistant-message.is-user .competition-assistant-message-copy :is(a, code) { color: #fff; }
.competition-assistant-message.is-user .competition-assistant-message-copy code {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.26);
}

.competition-assistant-message.is-pending .competition-assistant-message-copy {
  position: relative;
  min-height: 42px;
  padding-right: 42px;
  color: var(--muted);
  background: #eef4fb;
  box-sizing: border-box;
  max-width: 100%;
}

.competition-assistant-message.is-pending .competition-assistant-message-copy::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  display: block;
  width: 23px;
  height: 5px;
  background:
    radial-gradient(circle at 2.5px 2.5px, var(--blue-600) 0 2.5px, transparent 2.75px),
    radial-gradient(circle at 11.5px 2.5px, #7faee8 0 2.5px, transparent 2.75px),
    radial-gradient(circle at 20.5px 2.5px, #bdd2ed 0 2.5px, transparent 2.75px);
  border-radius: 0;
  transform: translateY(-50%);
  animation: competition-assistant-thinking 900ms ease-in-out infinite alternate;
}

@keyframes competition-assistant-thinking {
  to { opacity: 0.35; transform: translateY(calc(-50% - 2px)); }
}

.competition-assistant-message.is-error .competition-assistant-message-copy {
  color: #8f2d24;
  background: #fff4f2;
  border-color: #f1c3bd;
}

.competition-assistant-cards {
  display: grid;
  gap: 8px;
  margin-top: 9px;
}

.competition-assistant-card {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 12px;
  background: #fff;
  border: 1px solid #d6e1ef;
  border-radius: 13px;
  box-shadow: 0 5px 16px rgba(22, 52, 91, 0.05);
  transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

.competition-assistant-card:hover {
  transform: translateY(-1px);
  border-color: #9fc2ee;
  box-shadow: 0 9px 20px rgba(22, 52, 91, 0.09);
}

.competition-assistant-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.competition-assistant-card-top b { padding: 3px 7px; color: var(--teal-700); background: var(--teal-100); border-radius: 999px; font-size: 10px; }
.competition-assistant-card-top em { color: var(--blue-700); font-size: 10px; font-style: normal; font-weight: 700; }
.competition-assistant-card > strong { color: var(--navy-950); font-size: 13px; line-height: 1.45; }
.competition-assistant-card-reason { color: #364962; font-size: 11px; line-height: 1.55; }
.competition-assistant-card-meta { color: var(--blue-700); font-size: 10px; font-weight: 700; }
.competition-assistant-card > small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.competition-assistant-card-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 3px;
}

.competition-assistant-card-action,
.competition-assistant-card-actions button {
  width: 100%;
  min-height: 29px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 8px;
  color: var(--blue-700);
  background: #edf5ff;
  border: 1px solid #c5d8f0;
  border-radius: 6px;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.competition-assistant-card-actions button[data-competition-dislike] {
  color: #64778d;
  background: #fff;
  border-color: #d8e2ec;
}

.competition-assistant-card-actions button[data-competition-save].is-saved {
  color: #9d6b00;
  background: #fff7db;
  border-color: #f0c85e;
}

.competition-assistant-card-actions :is(a, button):hover { transform: translateY(-1px); }

.competition-assistant-feedback {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 7px;
  color: var(--muted-2);
  font-size: 10px;
}

.competition-assistant-feedback button {
  padding: 3px 7px;
  color: var(--muted);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 10px;
  cursor: pointer;
}

.competition-assistant-prompts {
  display: flex;
  flex-wrap: nowrap;
  gap: 7px;
  padding: 8px 15px 12px;
}
.competition-assistant-prompts button {
  flex: 1 1 0;
  min-width: 0;
  padding: 7px 4px;
  color: var(--blue-700);
  background: #fff;
  border: 1px solid #cbdcf2;
  border-radius: 999px;
  font-size: 11px;
  white-space: nowrap;
  cursor: pointer;
}
.competition-assistant-prompts button:hover { background: var(--blue-100); }
.competition-assistant-prompts button:disabled { opacity: 0.5; cursor: not-allowed; }

.competition-assistant-auth-gate {
  margin: 0;
  padding: 14px 16px;
  background: #fff;
  border-top: 1px solid var(--line);
}

.competition-assistant-auth-gate[hidden] { display: none; }
.competition-assistant-auth-gate strong { display: block; color: var(--navy-950); font-size: 14px; }
.competition-assistant-auth-gate p { margin: 4px 0 10px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.competition-assistant-auth-gate div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }

.competition-assistant-auth-gate button {
  min-height: 36px;
  color: #075abd;
  background: #edf5ff;
  border: 1px solid #bdd3ed;
  border-radius: 8px;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.competition-assistant-composer {
  display: flex;
  align-items: flex-end;
  gap: 7px;
  padding: 10px 11px;
  background: #fff;
  border-top: 1px solid var(--line);
}

.competition-assistant-composer textarea {
  min-width: 0;
  min-height: 42px;
  max-height: 116px;
  flex: 1;
  resize: none;
  padding: 9px 11px;
  color: var(--ink);
  background: #f7f9fc;
  border: 1px solid #d4deea;
  border-radius: 12px;
  font-size: 12px;
  line-height: 1.6;
}
.competition-assistant-composer textarea:focus { outline: 3px solid rgba(11, 109, 227, 0.16); border-color: #8bb6ec; }

.competition-assistant-voice,
.competition-assistant-send,
.competition-assistant-stop {
  min-width: 50px;
  height: 42px;
  padding: 0 10px;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.competition-assistant-voice {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  width: 42px;
  padding: 0;
  color: #5d6b7d;
  background: #f3f6fa;
  border: 1px solid #d4deea;
}
.competition-assistant-voice svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.competition-assistant-voice.is-recording {
  color: #a33b2f;
  background: #fff2f0;
  border-color: #e8b4ad;
}
.competition-assistant-voice.is-unavailable {
  color: #7a6471;
  background: #fff7ed;
  border-color: #f0c895;
}
.competition-assistant-voice:disabled {
  cursor: default;
  opacity: 0.6;
}
.competition-assistant-send { color: #fff; background: #438dd2; border: 1px solid #438dd2; }
.competition-assistant-stop { color: #a33b2f; background: #fff2f0; border: 1px solid #e8b4ad; }

.competition-assistant-footnote {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  margin: 0;
  padding: 0 10px 6px;
  color: #778499;
  background: #fff;
  font-size: 9px;
  line-height: 1.35;
  text-align: center;
}

.competition-assistant-reset-dialog {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(29, 62, 86, 0.28);
  backdrop-filter: blur(5px);
  animation: competition-assistant-dialog-fade 160ms ease both;
}

.competition-assistant-reset-dialog[hidden] { display: none; }

.competition-assistant-reset-card {
  width: min(100%, 310px);
  padding: 24px 22px 20px;
  color: #183b55;
  background: linear-gradient(150deg, #fff 0%, #f4fbff 58%, #f1fcf8 100%);
  border: 1px solid #b9ddef;
  border-radius: 22px;
  box-shadow: 0 24px 58px rgba(25, 67, 96, 0.24), 0 4px 16px rgba(25, 67, 96, 0.1);
  text-align: center;
  animation: competition-assistant-dialog-card 190ms ease-out both;
}

.competition-assistant-reset-avatar {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  margin: -4px auto 10px;
  background: #fff;
  border: 1px solid #c6e5f3;
  border-radius: 19px;
  box-shadow: 0 9px 22px rgba(45, 116, 158, 0.14);
}

.competition-assistant-reset-avatar img { width: 54px; height: 54px; object-fit: contain; }
.competition-assistant-reset-card small { display: block; margin-bottom: 5px; color: #4783a7; font-size: 11px; font-weight: 800; letter-spacing: 0.08em; }
.competition-assistant-reset-card > strong { display: block; color: #173954; font-size: 18px; line-height: 1.35; }
.competition-assistant-reset-card > p { margin: 9px 0 18px; color: #60798c; font-size: 12px; line-height: 1.65; }

.competition-assistant-reset-actions {
  display: grid;
  grid-template-columns: 1fr 1.18fr;
  gap: 9px;
}

.competition-assistant-reset-actions button {
  min-height: 42px;
  padding: 8px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.competition-assistant-reset-cancel {
  color: #526f83;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid #c9dce7;
}

.competition-assistant-reset-confirm {
  color: #fff;
  background: linear-gradient(135deg, #4a95d5, #3e84c7);
  border: 1px solid #3e84c7;
  box-shadow: 0 8px 18px rgba(62, 132, 199, 0.2);
}

.competition-assistant-reset-actions button:hover { transform: translateY(-1px); }
.competition-assistant-reset-actions button:focus-visible { outline: 3px solid rgba(74, 149, 213, 0.24); outline-offset: 2px; }

@keyframes competition-assistant-dialog-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes competition-assistant-dialog-card {
  from { opacity: 0; transform: translateY(10px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 720px) {
  body.competition-assistant-open { overflow: hidden; }
  .competition-assistant { right: max(16px, env(safe-area-inset-right)); bottom: max(20px, calc(env(safe-area-inset-bottom) + 16px)); }
  .competition-assistant.is-open {
    inset: max(7vh, 46px) 0 0 !important;
    width: auto;
    height: auto;
  }
  .competition-assistant-launcher { width: 60px; height: 60px; border-radius: 21px; }
  .competition-assistant-launcher-label { display: none; }
  .competition-assistant.has-intro-message .competition-assistant-launcher-label {
    display: block;
    max-width: 190px;
    padding: 9px 12px;
    font-size: 13px;
    white-space: nowrap;
  }
  .competition-assistant-panel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: auto;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -18px 60px rgba(7, 26, 56, 0.22);
  }
  .competition-assistant-header { min-height: 68px; padding-top: 10px; }
  .competition-assistant-header::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 50%;
    width: 38px;
    height: 4px;
    background: rgba(63, 138, 184, 0.3);
    border-radius: 99px;
    transform: translateX(-50%);
  }
  .competition-assistant-messages { padding: 16px 13px 8px; }
  .competition-assistant-message-body { max-width: min(86%, 520px); }
  .competition-assistant-prompts { padding-inline: 13px; }
  .competition-assistant-composer { padding: 9px 10px max(9px, env(safe-area-inset-bottom)); }
  .competition-assistant-footnote { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .competition-assistant.has-intro-message .competition-assistant-launcher-label,
  .competition-assistant.has-intro-message .competition-assistant-launcher {
    animation: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .competition-assistant-panel,
  .competition-assistant-message.is-pending .competition-assistant-message-copy::after,
  .competition-assistant-reset-dialog,
  .competition-assistant-reset-card { animation: none; }
  .competition-assistant-launcher,
  .competition-assistant-card { transition: none; }
}

.admin-ai-assistant-settings {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr)) auto;
  align-items: start;
  gap: 12px;
  margin-bottom: 16px;
  padding: 16px;
  background: #f7f9fc;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.admin-ai-assistant-settings .form-field { min-width: 0; margin: 0; }
.admin-ai-assistant-settings .form-field input { height: 50px; min-height: 50px; }
.admin-ai-assistant-settings .button { height: 50px; min-height: 50px; margin: 0; }
.admin-ai-assistant-submit { display: grid; grid-template-rows: 22px 50px; gap: 7px; align-content: start; }
.admin-ai-assistant-submit::before { content: ""; display: block; }

.admin-ai-assistant-switch {
  grid-column: 1 / -1;
  min-height: 60px;
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid #cbdceb;
  border-radius: 9px;
  cursor: pointer;
}
.admin-ai-assistant-switch input { width: 22px; height: 22px; flex: 0 0 auto; accent-color: var(--teal-600); }
.admin-ai-assistant-switch span { display: grid; gap: 4px; }
.admin-ai-assistant-switch strong { color: var(--navy-950); font-size: 14px; font-weight: 850; }
.admin-ai-assistant-switch small { color: #60758c; font-size: 10.5px; font-weight: 600; line-height: 1.5; }

.admin-ai-assistant-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 14px;
  padding: 12px 15px;
  color: #145a4b;
  background: #eefaf6;
  border: 1px solid #b6dfd1;
  border-radius: 10px;
}
.admin-ai-assistant-status.is-warning { color: #795218; background: #fff8e9; border-color: #e8cf94; }
.admin-ai-assistant-status > span { display: flex; align-items: center; gap: 8px; }
.admin-ai-assistant-status i { width: 8px; height: 8px; background: #19a37d; border-radius: 50%; }
.admin-ai-assistant-status.is-warning i { background: #d29024; }
.admin-ai-assistant-status strong { font-size: 11px; }
.admin-ai-assistant-status small { color: inherit; opacity: 0.75; font-size: 9px; }
.admin-ai-assistant-status p { max-width: 650px; margin: 0; color: inherit; font-size: 9px; text-align: right; }

.admin-ai-assistant-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.admin-ai-assistant-stats article { padding: 16px; }
.admin-ai-assistant-stats strong { font-size: 25px; }

.admin-ai-assistant-observability {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.admin-ai-flow-card {
  margin: 16px 0;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(15, 38, 73, 0.06);
}
.admin-ai-flow-card > header,
.admin-ai-execution-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.admin-ai-flow-card > header h3,
.admin-ai-execution-card > header h3 { margin-bottom: 3px; }
.admin-ai-flow-card > header p,
.admin-ai-execution-card > header p { margin: 0; color: var(--muted); font-size: 10px; }
.admin-ai-flow-card > header > span {
  padding: 4px 8px;
  color: var(--blue-700);
  background: var(--blue-100);
  border-radius: 999px;
  font-size: 9px;
  font-weight: 850;
}
.admin-ai-flow-helper {
  margin: -2px 0 12px;
  color: #60758c;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.55;
}
.admin-ai-flow-workbench {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  align-items: start;
}
.admin-ai-flow-canvas {
  width: 100%;
  max-width: 100%;
  height: clamp(560px, 39vw, 590px);
  min-height: 0;
  overflow-x: auto;
  overflow-y: hidden;
  background: #fbfdff;
  border: 1px solid #dbe8f4;
  border-radius: 12px;
}
.admin-ai-flow-svg {
  display: block;
  width: 100%;
  min-width: 1120px;
  height: 100%;
  user-select: none;
}
.admin-ai-flow-svg-bg { fill: #fbfdff; }
.admin-ai-flow-svg-lanes rect {
  fill: rgba(255, 255, 255, 0.9);
  stroke: #dce8f2;
  stroke-width: 1;
}
.admin-ai-flow-svg-lanes line {
  stroke: #e1ebf4;
  stroke-width: 1;
}
.admin-ai-flow-lane-label {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #2f475f;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.admin-ai-flow-svg-edge path {
  fill: none;
  stroke: #b7c9dc;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.82;
  marker-end: url(#admin-ai-flow-arrow);
}
.admin-ai-flow-svg-edge.is-primary:not(.is-related) path {
  stroke: #8fa8c0;
  stroke-width: 2.1;
  opacity: 0.94;
}
.admin-ai-flow-svg-edge.is-muted:not(.is-related) path {
  stroke: #c2cfdb;
  stroke-width: 1.4;
  opacity: 0.64;
}
.admin-ai-flow-svg-edge.is-related path {
  stroke: #357fcb;
  stroke-width: 2.4;
  opacity: 1;
  marker-end: url(#admin-ai-flow-arrow-related);
}
.admin-ai-flow-svg-edge.is-subgraph-relation path {
  stroke: #7897b4;
  stroke-dasharray: 7 6;
  stroke-width: 1.6;
  opacity: 0.78;
}
.admin-ai-flow-svg-edge.is-subgraph-relation.is-related path {
  stroke: #357fcb;
  stroke-dasharray: 7 5;
  stroke-width: 2.2;
}
.admin-ai-flow-svg-edge-label {
  opacity: 1;
  pointer-events: none;
}
.admin-ai-flow-svg-edge-label text {
  fill: #536981;
  stroke: rgba(251, 253, 255, 0.96);
  stroke-width: 3px;
  stroke-linejoin: round;
  paint-order: stroke fill;
  font-family: var(--font);
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: 0;
  opacity: 1;
  dominant-baseline: middle;
  text-anchor: middle;
}
.admin-ai-flow-svg-edge.is-related .admin-ai-flow-svg-edge-label text {
  fill: #3f6182;
  font-weight: 500;
}
.admin-ai-flow-svg marker path {
  stroke: none;
  stroke-width: 0;
}
#admin-ai-flow-arrow path { fill: #8fa7bd; }
#admin-ai-flow-arrow-related path { fill: #357fcb; }
.admin-ai-flow-svg-node {
  outline: none;
  cursor: pointer;
}
.admin-ai-flow-svg-node-card {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  text-align: center;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid #d5e4f0;
  border-radius: 9px;
  box-shadow: 0 6px 16px rgba(15, 38, 73, 0.055);
  transition: border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
}
.admin-ai-flow-svg-node.is-local .admin-ai-flow-svg-node-card { border-color: #bfd7ef; }
.admin-ai-flow-svg-node.is-model .admin-ai-flow-svg-node-card { background: rgba(239, 251, 249, 0.98); border-color: #addbd5; }
.admin-ai-flow-svg-node.is-system .admin-ai-flow-svg-node-card {
  background: #f7f9fc;
  border-color: #cbd8e5;
}
.admin-ai-flow-svg-node.is-selected .admin-ai-flow-svg-node-card,
.admin-ai-flow-svg-node:focus-visible .admin-ai-flow-svg-node-card {
  background: #f3f8ff;
  border: 2px solid #2b78c5;
  box-shadow: 0 8px 20px rgba(15, 91, 189, 0.13);
}
.admin-ai-flow-svg-node.is-model.is-selected .admin-ai-flow-svg-node-card { background: #ecf9f6; border-color: #238b7c; }
.admin-ai-flow-svg-node[data-admin-ai-flow-item="select_recommendations"] .admin-ai-flow-svg-node-card {
  background: #f3f8ff;
  border-color: #a9cbe9;
}
.admin-ai-flow-svg-node[data-admin-ai-flow-item="select_recommendations"].is-selected .admin-ai-flow-svg-node-card { border-color: #2b78c5; }
.admin-ai-flow-svg-node-card strong {
  display: block;
  color: #253f59;
  font-family: var(--font);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.admin-ai-flow-svg-node-card > span {
  display: block;
  margin-top: 6px;
  color: #587087;
  font-family: var(--font);
  font-size: 9px;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;
}
.admin-ai-flow-svg-node.is-model.is-selected .admin-ai-flow-svg-node-card > span { color: #286b63; }
.admin-ai-flow-svg-node.is-system .admin-ai-flow-svg-node-card strong {
  font-size: 15px;
  line-height: 1.2;
}
.admin-ai-flow-svg-decision {
  outline: none;
  cursor: pointer;
}
.admin-ai-flow-svg-decision polygon {
  fill: #fff8e8;
  stroke: #e5a93e;
  stroke-width: 1.4;
  filter: drop-shadow(0 5px 10px rgba(127, 89, 21, 0.08));
  transition: fill 140ms ease, stroke 140ms ease;
}
.admin-ai-flow-svg-decision.is-selected polygon,
.admin-ai-flow-svg-decision:focus-visible polygon {
  fill: #fff3d2;
  stroke: #c98516;
  stroke-width: 2.3;
}
.admin-ai-flow-svg-decision-label {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #33495f;
  font-family: var(--font);
  font-size: 12.5px;
  font-weight: 750;
  line-height: 1.3;
  text-align: center;
}
.admin-ai-flow-detail {
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0 14px 11px;
  background: #fff;
  border: 1px solid #d9e6f2;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(15, 38, 73, 0.045);
}
.admin-ai-flow-detail header {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(200px, auto) minmax(0, 1fr) auto;
  gap: 8px 14px;
  align-items: center;
  padding: 11px 0;
}
.admin-ai-flow-detail h4 {
  min-width: 0;
  margin: 0;
  padding: 5px 9px;
  color: #225a8c;
  background: #eef6ff;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.35;
}
.admin-ai-flow-detail.is-decision h4 { color: #825811; background: #fff5dc; }
.admin-ai-flow-detail header small {
  color: #7b8fa5;
  font-size: 9.5px;
  font-weight: 650;
  white-space: nowrap;
}
.admin-ai-flow-detail header p {
  margin: 0;
  color: #526981;
  font-size: 10.5px;
  line-height: 1.55;
}
.admin-ai-flow-detail-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid #e2ebf3;
  border-bottom: 1px solid #e2ebf3;
}
.admin-ai-flow-detail-summary p {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  align-content: start;
  margin: 0;
  padding: 9px 12px;
  color: #526981;
  border-right: 1px solid #e2ebf3;
  font-size: 9.8px;
  line-height: 1.45;
  text-align: left;
}
.admin-ai-flow-detail-summary p:last-child { border-right: 0; }
.admin-ai-flow-detail-summary strong { color: var(--navy-950); font-size: 9.8px; }
.admin-ai-flow-detail-summary span { min-width: 0; overflow-wrap: anywhere; }
.admin-ai-flow-detail-tech { min-width: 0; padding-top: 9px; }
.admin-ai-flow-detail dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 8px 0 0;
}
.admin-ai-flow-detail dl div {
  min-width: 0;
  padding: 7px 8px;
  background: #f8fbfe;
  border: 1px solid #dce8f2;
  border-radius: 8px;
  text-align: left;
}
.admin-ai-flow-detail dt { color: #667b91; font-size: 9px; font-weight: 800; }
.admin-ai-flow-detail dd { margin: 3px 0 0; color: var(--navy-950); font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.admin-ai-flow-detail-tech summary {
  color: #526981;
  font-size: 10px;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}
.admin-ai-execution-list { display: grid; gap: 8px; }
.admin-ai-execution {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 9px;
  overflow: hidden;
}
.admin-ai-execution summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 12px;
  cursor: pointer;
}
.admin-ai-execution summary > span { display: grid; gap: 3px; }
.admin-ai-execution summary strong { color: var(--navy-950); font-size: 11px; }
.admin-ai-execution summary small { color: var(--muted-2); font-size: 8px; }
.admin-ai-execution summary b { color: var(--blue-700); font-size: 9px; }
.admin-ai-execution-path {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 12px 12px;
}
.admin-ai-execution-path span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  color: #0c5670;
  background: #eaf8fb;
  border: 1px solid #c8e5ec;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 850;
}
.admin-ai-execution-path span[data-outcome="error"] {
  color: #9f2f25;
  background: #fff2ef;
  border-color: #efc3bd;
}
.admin-ai-execution-path small { color: inherit; opacity: 0.72; font-size: 8px; }
.admin-inline-button {
  padding: 0;
  color: var(--blue-700);
  background: transparent;
  border: 0;
  font: inherit;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.admin-compact-list {
  display: grid;
  gap: 8px;
  margin: 8px 0 18px;
  padding: 0;
  list-style: none;
}

.admin-compact-list li {
  padding: 9px 10px;
  background: #f8fbfe;
  border: 1px solid #dce6ef;
  border-radius: 7px;
}

.admin-compact-list small { display: block; margin-top: 4px; color: var(--muted); }
.admin-student-chat-label {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 10px;
  align-items: end;
  margin: 14px 0;
}
.admin-student-chat-label .form-field { margin: 0; }
.admin-student-chat-label .button { min-height: 42px; }
.admin-ai-competition-card,
.admin-ai-trace-card {
  height: 920px;
  min-height: 920px;
  display: flex;
  flex-direction: column;
}
.admin-ai-competition-card .admin-table-scroll,
.admin-ai-trace-list {
  flex: 1;
  min-height: 0;
  max-height: 850px;
  overflow: auto;
}
.admin-ai-trace-card { grid-column: auto; }
.admin-ai-observability-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.admin-ai-observability-card > header h3 { margin: 0 0 3px; }
.admin-ai-observability-card > header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.admin-ai-observability-card > header > span { flex: 0 0 auto; padding: 4px 8px; color: var(--blue-700); background: var(--blue-100); border-radius: 999px; font-size: 10px; font-weight: 800; }
.admin-ai-competition-card .admin-table-scroll { padding-right: 3px; }
.admin-ai-competition-card table { border-collapse: separate; border-spacing: 0 8px; table-layout: fixed; }
.admin-ai-competition-card th { padding: 0 12px 4px; color: var(--muted); background: transparent; border-bottom: 0; font-size: 10px; font-weight: 750; }
.admin-ai-competition-card th:not(:first-child),
.admin-ai-competition-card td:not(:first-child) { width: 82px; text-align: center; }
.admin-ai-competition-card td { padding: 12px; background: #f8fafc; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 11px; line-height: 1.55; }
.admin-ai-competition-card td:first-child { color: var(--navy-950); border-left: 1px solid var(--line); border-radius: 9px 0 0 9px; font-weight: 700; }
.admin-ai-competition-card td:last-child { border-right: 1px solid var(--line); border-radius: 0 9px 9px 0; }
.admin-ai-competition-card tbody tr:hover td { background: #f3f7fb; }
.admin-ai-trace-list { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding-right: 3px; }
.admin-ai-trace { flex: 0 0 auto; overflow: hidden; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; }
.admin-ai-trace[data-outcome="error"] { border-color: #ecc2bd; }
.admin-ai-trace summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 12px; cursor: pointer; }
.admin-ai-trace summary > span { display: grid; gap: 2px; }
.admin-ai-trace summary > span:last-child { text-align: right; }
.admin-ai-trace summary strong { color: var(--navy-950); font-size: 12px; }
.admin-ai-trace summary small,
.admin-ai-trace summary time { color: var(--muted-2); font-size: 9px; }
.admin-ai-trace summary b { color: var(--teal-700); font-size: 10px; }
.admin-ai-trace[data-outcome="error"] summary b { color: #a13931; }
.admin-ai-trace-meta { display: flex; flex-wrap: wrap; gap: 5px 12px; padding: 9px 12px; color: var(--muted); background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 9px; }
.admin-ai-trace-content { display: grid; gap: 12px; padding: 12px; background: #fff; }
.admin-ai-trace section { min-width: 0; padding: 0; background: #fff; }
.admin-ai-trace h4 { margin: 0 0 6px; color: var(--navy-800); font-size: 11px; }
.admin-ai-trace pre { min-height: 120px; max-height: 320px; overflow: auto; margin: 0; padding: 12px; color: #233957; background: #f1f4f8; border-radius: 7px; font: 10.5px/1.65 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-ai-panel-footer,
.admin-ai-trace-pagination {
  flex: 0 0 auto;
  min-height: 40px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #e3ebf3;
}
.admin-ai-panel-footer { display: flex; align-items: center; justify-content: center; }
.admin-ai-trace-pagination {
  display: grid;
  grid-template-columns: 84px minmax(140px, auto) 84px;
  gap: 10px;
  align-items: center;
  justify-content: center;
}
.admin-ai-panel-footer span,
.admin-ai-trace-pagination span {
  padding: 8px 12px;
  color: #536b83;
  background: #f4f7fb;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 750;
  text-align: center;
  white-space: nowrap;
}
.admin-ai-trace-pagination button {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 12px;
  color: var(--blue-700);
  background: #fff;
  border: 1px solid #bfd5e9;
  border-radius: 999px;
  box-shadow: 0 4px 10px rgba(18, 75, 128, 0.06);
  font: inherit;
  font-size: 10.5px;
  font-weight: 800;
  cursor: pointer;
}
.admin-ai-trace-pagination button:hover:not(:disabled) { background: #edf5ff; border-color: #8eb9df; }
.admin-ai-trace-pagination button:disabled { color: #9eabba; background: #f7f9fb; border-color: #dfe7ef; box-shadow: none; cursor: not-allowed; }

#admin-students-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 20px;
}
.admin-students-section .pagination { flex-wrap: wrap; }

.admin-students-workspace {
  display: grid;
  grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.9fr);
  gap: 18px;
  align-items: start;
}
.admin-student-left-column { min-width: 0; display: grid; gap: 14px; }
.admin-student-profile-card,
.admin-student-users-panel,
.admin-student-detail-card {
  min-width: 0;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(18, 50, 82, 0.04);
}
.admin-student-profile-card h3,
.admin-student-users-panel h3,
.admin-student-detail-card h3 { margin: 0; color: var(--navy-950); font-size: 22px; line-height: 1.25; }
.admin-student-profile-card p,
.admin-student-users-panel p,
.admin-student-detail-card p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.admin-student-profile-head { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: center; }
.admin-student-profile-head img { width: 72px; height: 72px; object-fit: cover; border: 1px solid #cfe0ef; border-radius: 50%; background: #eef6ff; }
.admin-student-profile-head h3 { margin-top: 2px; overflow-wrap: anywhere; }
.admin-student-profile-head small { display: block; margin-top: 5px; color: var(--muted-2); font-size: 10px; line-height: 1.55; }
.admin-student-profile-stats {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.admin-student-profile-stats div {
  min-width: 0;
  padding: 11px 10px;
  background: #f6f9fd;
  border: 1px solid #e1eaf3;
  border-radius: 8px;
}
.admin-student-profile-stats strong { display: block; color: var(--navy-950); font-size: 17px; line-height: 1.25; overflow-wrap: anywhere; }
.admin-student-profile-stats span { display: block; margin-top: 3px; color: var(--muted-2); font-size: 9px; font-weight: 750; }
.admin-student-profile-rows {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.admin-student-profile-rows div {
  min-width: 0;
  padding: 10px 11px;
  background: #fbfdff;
  border: 1px solid #e4ecf4;
  border-radius: 8px;
}
.admin-student-profile-rows span { display: block; color: var(--muted-2); font-size: 9px; font-weight: 750; }
.admin-student-profile-rows strong { display: block; margin-top: 3px; color: var(--navy-900); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-student-profile-tags { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.admin-student-profile-tags span {
  max-width: 100%;
  padding: 5px 8px;
  color: #075abd;
  background: #edf6ff;
  border: 1px solid #cce0f6;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.admin-student-profile-tags .admin-student-muted-tag { color: var(--muted-2); background: #f5f7fa; border-color: #e0e7ef; }
.admin-student-profile-bio {
  margin-top: 12px !important;
  padding: 11px 12px;
  background: #f8fafc;
  border-left: 3px solid #8cb9e6;
  border-radius: 7px;
}
.admin-student-profile-saved {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e2ebf4;
}
.admin-student-profile-saved h4 {
  margin: 0 0 10px;
  color: var(--navy-900);
  font-size: 15px;
}
.admin-student-users-panel > header,
.admin-student-detail-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.admin-student-users-panel > header > span,
.admin-student-detail-heading > span,
.admin-student-chat-dialog-heading > span {
  flex: 0 0 auto;
  padding: 6px 9px;
  color: #075abd;
  background: #edf6ff;
  border: 1px solid #cce0f6;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
}
.admin-student-user-list { margin-top: 14px; max-height: 560px; display: grid; gap: 9px; overflow: auto; padding-right: 4px; }
.admin-student-user-card {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px;
  text-align: left;
  color: var(--ink);
  background: #f9fbfd;
  border: 1px solid #dfe8f1;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}
.admin-student-user-card:hover,
.admin-student-user-card[aria-selected="true"] {
  background: #eff7ff;
  border-color: #9cc6ee;
  box-shadow: 0 10px 22px rgba(24, 83, 139, 0.08);
}
.admin-student-user-card img { width: 44px; height: 44px; object-fit: cover; border-radius: 50%; background: #eef6ff; border: 1px solid #d4e4f2; }
.admin-student-user-copy { min-width: 0; display: grid; gap: 2px; }
.admin-student-user-copy strong { color: var(--navy-950); font-size: 13px; overflow-wrap: anywhere; }
.admin-student-user-copy small { color: var(--muted); font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-student-user-copy em { color: var(--muted-2); font-size: 9px; font-style: normal; }
.admin-student-user-metrics { min-width: 46px; display: grid; justify-items: center; gap: 2px; color: #075abd; }
.admin-student-user-metrics b { font-size: 16px; line-height: 1; }
.admin-student-user-metrics small { color: var(--muted-2); font-size: 8px; font-weight: 800; }
.admin-student-detail-card { min-height: 620px; }
.admin-student-empty-detail { min-height: 220px; display: grid; align-content: center; justify-items: center; text-align: center; }
.admin-student-empty-detail p { max-width: 520px; }
.admin-student-detail-heading { margin-bottom: 18px; }
.admin-student-detail-heading h3 { margin: 2px 0 4px; font-size: 28px; }
.admin-student-detail-stack { display: grid; gap: 16px; }
.admin-student-chat-section {
  min-width: 0;
  padding: 18px;
  background: #f8fbfd;
  border: 1px solid #dfe8f1;
  border-radius: 8px;
}
.admin-student-chat-section h4 { margin: 0 0 10px; color: var(--navy-900); font-size: 15px; }
.admin-student-chat-list,
.admin-student-saved-list { display: grid; gap: 9px; }
.admin-student-chat-card {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 14px;
  color: var(--ink);
  text-align: left;
  background: #fbfdff;
  border: 1px solid #dce7f1;
  border-radius: 8px;
  cursor: pointer;
}
.admin-student-chat-card:hover { background: #f0f7ff; border-color: #9dc7ed; }
.admin-student-chat-copy { min-width: 0; display: grid; gap: 4px; }
.admin-student-chat-copy strong { color: var(--navy-950); font-size: 13px; overflow-wrap: anywhere; }
.admin-student-chat-copy small { color: var(--muted-2); font-size: 10px; }
.admin-student-chat-action { color: #075abd; font-size: 10px; font-weight: 850; white-space: nowrap; }
.admin-student-saved-card {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  padding: 12px;
  background: #f8fbfd;
  border: 1px solid #dfe8f1;
  border-radius: 8px;
}
.admin-student-saved-card strong { display: block; color: var(--navy-950); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.admin-student-saved-card small { display: block; margin-top: 3px; color: var(--muted-2); font-size: 9px; }
.admin-student-empty-panel {
  min-height: 96px;
  display: grid;
  place-items: center;
  padding: 18px;
  color: var(--muted);
  background: #f8fafc;
  border: 1px dashed #c8d6e4;
  border-radius: 8px;
  text-align: center;
  font-size: 12px;
}
.admin-student-chat-dialog {
  width: min(1220px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  box-shadow: 0 30px 90px rgba(7, 27, 61, 0.3);
}
.admin-student-chat-dialog::backdrop { background: rgba(7, 27, 61, 0.54); backdrop-filter: blur(4px); }
.admin-student-chat-dialog-shell {
  position: relative;
  max-height: calc(100dvh - 32px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: 24px;
}
.admin-student-chat-close {
  position: absolute;
  top: 18px;
  right: 18px;
}
.admin-student-chat-dialog-heading {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 52px;
  padding-right: 72px;
}
.admin-student-chat-dialog-heading h3 { margin: 2px 0 5px; color: var(--navy-950); font-size: 24px; line-height: 1.3; overflow-wrap: anywhere; }
.admin-student-chat-dialog-heading p:last-child { margin: 0; color: var(--muted); font-size: 11px; }
.admin-student-chat-dialog-body {
  min-height: 0;
  display: block;
}
.admin-student-dialog-thread {
  min-height: 0;
  max-height: min(610px, calc(100dvh - 172px));
  display: grid;
  gap: 13px;
  overflow: auto;
  padding: 16px;
  background: #f6f9fc;
  border: 1px solid #dfe8f1;
  border-radius: 8px;
}
.admin-student-message { max-width: min(760px, 88%); display: grid; gap: 6px; }
.admin-student-message.has-recommendations { max-width: min(100%, 980px); }
.admin-student-message.is-student { justify-self: end; justify-items: end; }
.admin-student-message header { display: flex; align-items: center; gap: 8px; color: var(--muted-2); font-size: 9px; }
.admin-student-message header strong { color: var(--navy-800); }
.admin-student-message-bubble {
  max-width: 100%;
  padding: 12px 14px;
  box-sizing: border-box;
  color: #24364d;
  background: #fff;
  border: 1px solid #dbe6ef;
  border-radius: 8px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.7;
  font-size: 12px;
}
.admin-student-message.is-student .admin-student-message-bubble {
  color: #fff;
  background: #2576c8;
  border-color: #2576c8;
}
.admin-student-message-recommendations {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(var(--recommendation-count, 4), minmax(0, 1fr));
  gap: 10px;
}
.admin-student-recommendation-card {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 12px;
  background: #fff;
  border: 1px solid #dce8f2;
  border-radius: 8px;
  box-shadow: 0 10px 20px rgba(32, 69, 105, 0.05);
}
.admin-student-recommendation-card span {
  width: fit-content;
  max-width: 100%;
  padding: 2px 7px;
  overflow: hidden;
  color: #145b78;
  background: #edf8fb;
  border: 1px solid #d5edf3;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-student-recommendation-card strong { display: block; color: var(--navy-950); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.admin-student-recommendation-card p {
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  display: -webkit-box;
  font-size: 10px;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media (max-width: 1500px) {
  .admin-ai-flow-detail header { grid-template-columns: minmax(180px, auto) minmax(0, 1fr); }
  .admin-ai-flow-detail header small { grid-column: 1 / -1; }
  .admin-ai-flow-detail dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1120px) {
  .admin-ai-assistant-settings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-ai-assistant-settings .button { width: 100%; }
  .admin-ai-assistant-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-ai-assistant-observability { grid-template-columns: 1fr; }
  .admin-ai-trace-card { grid-column: auto; }
  .admin-students-workspace { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .admin-ai-assistant-settings,
  .admin-ai-assistant-stats { grid-template-columns: 1fr; }
  .admin-ai-flow-rules-grid { grid-template-columns: 1fr; }
  .admin-ai-flow-card > header,
  .admin-ai-execution-card > header { align-items: flex-start; flex-direction: column; }
  .admin-ai-flow-canvas { height: 560px; }
  .admin-ai-flow-svg { min-width: 1080px; }
  .admin-ai-flow-detail header,
  .admin-ai-flow-detail-summary,
  .admin-ai-flow-detail dl { grid-template-columns: 1fr; }
  .admin-ai-flow-detail header { align-items: start; }
  .admin-ai-flow-detail header small { grid-column: auto; white-space: normal; }
  .admin-ai-flow-detail-summary p { border-right: 0; border-bottom: 1px solid #e2ebf3; }
  .admin-ai-flow-detail-summary p:last-child { border-bottom: 0; }
  .admin-ai-trace-pagination { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-ai-trace-pagination span { grid-column: 1 / -1; grid-row: 1; }
  .admin-ai-trace-pagination button:first-child { grid-column: 1; grid-row: 2; }
  .admin-ai-trace-pagination button:last-child { grid-column: 2; grid-row: 2; }
  .admin-ai-assistant-submit { grid-template-rows: 50px; gap: 0; }
  .admin-ai-assistant-submit::before { display: none; }
  .admin-ai-assistant-status { align-items: flex-start; flex-direction: column; }
  .admin-ai-assistant-status p { text-align: left; }
  .admin-ai-execution summary,
  .admin-ai-trace summary { align-items: flex-start; flex-direction: column; }
  .admin-ai-trace summary > span:last-child { text-align: left; }
  .admin-student-profile-card,
  .admin-student-users-panel,
  .admin-student-detail-card { padding: 18px 14px; }
  .admin-student-profile-head { grid-template-columns: 58px minmax(0, 1fr); }
  .admin-student-profile-head img { width: 58px; height: 58px; }
  .admin-student-profile-stats,
  .admin-student-profile-rows { grid-template-columns: 1fr; }
  .admin-student-detail-heading,
  .admin-student-users-panel > header,
  .admin-student-chat-dialog-heading { align-items: flex-start; flex-direction: column; }
  .admin-student-chat-card { grid-template-columns: 1fr; }
  .admin-student-chat-dialog { width: min(100vw - 18px, 980px); max-height: calc(100dvh - 18px); }
  .admin-student-chat-dialog-shell { max-height: calc(100dvh - 18px); padding: 20px 14px 14px; }
  .admin-student-chat-dialog-heading { gap: 10px; padding-right: 62px; }
  .admin-student-dialog-thread { max-height: calc(100dvh - 260px); padding: 12px; }
  .admin-student-message { max-width: 100%; }
  .admin-student-message-recommendations { grid-template-columns: 1fr; }
}

.admin-student-detail-card .admin-student-profile-card,
.admin-student-detail-card .admin-student-chat-section {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.admin-student-detail-card .admin-student-chat-section {
  padding-top: 22px;
  border-top: 1px solid #e2ebf4;
}

@media (max-width: 480px) {
  .admin-configuration-publish-actions,
  .admin-competition-publish-actions { bottom: 8px; }
}

/* Shared form-control language for student and administration surfaces. */
input::placeholder,
textarea::placeholder {
  color: var(--muted-2);
  opacity: 1;
  font-weight: 400;
}

body select:not([multiple]) {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  background-image: var(--select-chevron);
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 18px 18px;
  cursor: pointer;
}

body select:not([multiple]):has(option:checked[value=""]),
body select:not([multiple]) option[value=""] { color: var(--muted-2); }
body select:not([multiple]) option:not([value=""]) { color: var(--ink); }
body select:not([multiple]):disabled { cursor: not-allowed; }

/* Community interaction and workspace management polish. */
.community-page.is-auth-pending,
.community-page.is-guest {
  background:
    linear-gradient(135deg, rgba(224, 248, 255, 0.78), rgba(245, 248, 255, 0.96) 46%, rgba(238, 244, 255, 0.88)),
    #f7fbff;
}

.community-page.is-auth-pending > .my-empty {
  background: transparent;
  border-color: transparent;
}

.community-heading-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.community-heading-actions .button {
  flex: 0 0 auto;
  text-decoration: none;
  white-space: nowrap;
}

.community-official-avatar {
  padding: 5px;
  overflow: hidden;
  background: #fff;
}

.community-official-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.community-team-apply-button.is-manage {
  text-decoration: none;
}

.community-form-footer {
  display: grid;
  gap: 8px;
  margin-top: 0;
}

.community-form-footer .form-message,
.community-report-form .form-message,
.community-profile-message-form .form-message,
.my-community-editor-dialog .form-message {
  min-height: 0;
  margin: 0;
}

.community-form-footer .button {
  min-width: 136px;
  justify-self: end;
}

.community-profile-message-form {
  gap: 8px;
  margin: 16px 0 0;
  padding: 16px 0 2px;
}

.community-profile-message-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.community-profile-message-composer label {
  min-width: 0;
}

.community-profile-message-composer .button {
  min-width: 172px;
  min-height: 78px;
  gap: 7px;
}

.community-profile-message-composer .community-inline-icon {
  width: 17px;
  height: 17px;
}

.community-report-dialog {
  width: min(560px, calc(100vw - 32px));
}

.community-report-form {
  gap: 12px;
  margin-top: 16px;
}

.community-report-form textarea {
  min-height: 132px;
}

.community-report-actions,
.my-community-dialog-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.community-report-actions .button,
.my-community-dialog-actions .button {
  min-width: 104px;
}

.community-profile-dynamics {
  gap: 14px;
}

.community-profile-dynamic {
  padding: 18px;
  border: 1px solid #dce7f1;
  box-shadow: 0 8px 24px rgba(20, 48, 82, 0.055);
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.community-profile-dynamic:hover {
  border-color: #bdd3e8;
  box-shadow: 0 12px 28px rgba(20, 48, 82, 0.08);
  transform: translateY(-1px);
}

.community-profile-dynamic-header {
  min-height: 26px;
}

.community-profile-dynamic-type.is-team {
  color: #08745f;
  background: #e7f7f2;
}

.community-profile-dynamic-type.is-announcement {
  color: #8d5e05;
  background: #fff3d5;
}

.community-profile-dynamic-content h3 {
  margin: 12px 0 7px;
}

.community-profile-dynamic-footer {
  min-width: 0;
}

.my-community-editor-dialog {
  width: min(720px, calc(100vw - 32px));
}

.my-community-editor-dialog .community-form {
  gap: 13px;
  margin-top: 16px;
}

.my-community-editor-type {
  width: max-content;
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 3px 9px;
  color: #075abd;
  background: #edf5ff;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
}

.my-community-editor-dialog .form-message:empty {
  display: none;
}

.my-community-confirm-dialog .my-community-dialog-actions {
  margin-top: 20px;
}

.my-community-dialog-actions .button.is-danger,
.my-community-row-actions .button.is-danger,
.my-team-management-actions .button.is-danger {
  color: #a33f48;
  background: #fff6f7;
  border-color: #e9c3c8;
  box-shadow: none;
}

.my-community-dialog-actions .button.is-danger:hover,
.my-community-row-actions .button.is-danger:hover,
.my-team-management-actions .button.is-danger:hover {
  color: #fff;
  background: #b23b47;
  border-color: #b23b47;
}

.my-community-row-actions {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.my-community-row-actions .button {
  min-width: 66px;
  min-height: 34px;
  padding: 6px 10px;
  font-size: 12px;
  text-decoration: none;
}

.my-team-management-actions {
  justify-content: flex-end;
}

.my-team-management-actions .button {
  min-width: 92px;
  text-decoration: none;
}

.my-conversation-group-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #08745f;
  background: #e7f7f2;
  border: 1px solid #c9e9df;
  border-radius: 50%;
}

.my-conversation-group-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.my-conversation-heading {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.my-conversation-heading > span {
  min-width: 0;
}

.my-conversation-heading .my-conversation-group-icon {
  width: 38px;
  height: 38px;
}

.my-conversation-view > header.is-team {
  background: #f5fbf9;
}

.my-direct-message-sender {
  color: #71849a;
  font-size: 9px;
  font-weight: 760;
  line-height: 1.3;
}

.my-direct-messages article.is-team-message.is-other > div {
  background: #f6fbfa;
  border-color: #cfe8e1;
}

.my-direct-messages article.is-team-message.is-mine .my-direct-message-sender {
  color: #5f7891;
}

@media (max-width: 820px) {
  .my-community-editor-dialog,
  .my-community-confirm-dialog,
  .community-report-dialog {
    max-height: calc(100dvh - 20px);
  }
}

@media (max-width: 720px) {
  .community-heading {
    display: grid;
    gap: 14px;
  }

  .community-heading-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .community-heading-actions .button {
    width: 100%;
    min-width: 0;
  }

  .community-profile-message-composer {
    grid-template-columns: 1fr;
  }

  .community-profile-message-composer .button {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }

  .community-form-footer .button {
    width: 100%;
    min-width: 0;
    justify-self: stretch;
  }

  .community-report-actions,
  .my-community-dialog-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .community-report-actions .button,
  .my-community-dialog-actions .button {
    width: 100%;
    min-width: 0;
  }

  .community-profile-dynamic {
    padding: 15px;
  }

  .community-profile-dynamic-footer {
    grid-template-columns: 1fr auto;
  }

  .my-community-row-actions {
    grid-column: 1 / -1;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(78px, 1fr));
  }

  .my-community-row-actions .button {
    width: 100%;
    min-width: 0;
  }

  .my-team-management-actions.my-item-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  }

  .my-team-management-actions .button {
    width: 100%;
    min-width: 0;
  }

  .my-conversation-view > header {
    grid-template-columns: 1fr;
    align-items: flex-start;
  }

  .my-conversation-view > header > .button {
    margin-left: auto;
  }

  .my-direct-messages article.is-team-message {
    max-width: 88%;
  }
}

@media (max-width: 520px) {
  .my-community-row {
    grid-template-columns: 1fr;
  }

  .my-community-row > .my-community-status {
    justify-self: start;
  }

  .community-profile-dynamic-footer {
    grid-template-columns: 1fr;
  }

  .community-profile-dynamic-link {
    grid-column: auto;
  }
}

/* Monthly launch console and unified human-review workbench. */
.admin-monthly-selection > .admin-monthly-runtime-board {
  margin: 22px 0 2px;
  padding: 20px;
  background: linear-gradient(145deg, #f6faff 0%, #f3faf7 100%);
  border-color: #cbdde8;
  box-shadow: none;
}

.admin-monthly-runtime-board > header h4 {
  margin: 3px 0 5px;
  color: var(--navy-950);
  font-size: 20px;
  line-height: 1.4;
}

.admin-monthly-runtime-controls {
  min-width: 310px;
  display: grid;
  justify-items: end;
  gap: 10px;
}

.admin-monthly-runtime-controls > strong {
  padding: 7px 11px;
  color: #176b58;
  background: #eaf7f2;
  border: 1px solid #b9ddd2;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap;
}

.admin-monthly-runtime-controls[data-monthly-run-paused="true"] > strong {
  color: #815411;
  background: #fff5df;
  border-color: #e4c98e;
}

.admin-monthly-runtime-controls[data-monthly-run-protection="true"] > strong {
  color: #8d443e;
  background: #fff1ef;
  border-color: #e6bdb8;
}

.admin-issue-domain-filters[hidden] { display: none; }

.admin-workbench-source-warning {
  margin-bottom: 16px;
  padding: 13px 15px;
  display: grid;
  gap: 3px;
  color: #7a4d0b;
  background: #fff7e8;
  border: 1px solid #e4c98e;
  border-radius: 10px;
}

.admin-workbench-source-warning strong { font-size: 13px; }
.admin-workbench-source-warning span { font-size: 12px; line-height: 1.55; }

.admin-workbench-competition {
  min-width: 0;
  overflow: hidden;
  background: #f7f9fc;
  border: 1px solid #ccdbe7;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(21, 53, 84, 0.06);
}

.admin-workbench-competition-heading {
  min-width: 0;
  padding: 22px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: linear-gradient(135deg, #eef6fd 0%, #f2faf7 100%);
  border-bottom: 1px solid #d2e0ea;
}

.admin-workbench-competition-heading > div {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.admin-workbench-competition-heading > div > div { min-width: 0; }
.admin-workbench-competition-heading p { margin: 0 0 3px; color: #36709e; font-size: 12px; font-weight: 820; letter-spacing: 0.04em; }
.admin-workbench-competition-heading h3 { margin: 0; color: var(--navy-950); font-size: 22px; line-height: 1.4; overflow-wrap: anywhere; }
.admin-workbench-competition-heading small { display: block; margin-top: 4px; color: #74869a; font-size: 12px; line-height: 1.45; }
.admin-workbench-competition-heading > strong {
  flex: 0 0 auto;
  padding: 8px 12px;
  color: #815411;
  background: #fff7e7;
  border: 1px solid #e5cc98;
  border-radius: 999px;
  font-size: 12px;
  white-space: nowrap;
}

.admin-workbench-task-list { padding: 18px; display: grid; gap: 16px; }
.admin-workbench-task {
  min-width: 0;
  padding: 18px;
  background: #fff;
  border: 1px solid #d6e2ec;
  border-radius: 13px;
  box-shadow: 0 6px 18px rgba(21, 53, 84, 0.035);
}

.admin-workbench-task-order {
  margin-bottom: 14px;
  padding-bottom: 11px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #e2e9ef;
}

.admin-workbench-task-order span { color: #075abd; font-size: 12px; font-weight: 850; letter-spacing: 0.05em; }
.admin-workbench-task-order strong {
  flex: 0 0 auto;
  padding: 6px 11px;
  color: #815411;
  background: #fff7e7;
  border: 1px solid #e5cc98;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1.35;
  white-space: nowrap;
}
.admin-workbench-task > .admin-issue-card { padding: 0; background: transparent; border: 0; border-radius: 0; }
.admin-issue-tracking {
  margin: 0 0 20px;
  padding: 15px 17px;
  color: #294660;
  background: #f4f8fc;
  border: 1px solid #dce6ef;
  border-radius: 10px;
  overflow-wrap: anywhere;
}
.admin-issue-tracking dl {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.admin-issue-tracking dt { color: #60768b; font-size: 12px; }
.admin-issue-tracking dd { margin: 4px 0 0; font-size: 14px; font-weight: 750; }
.admin-issue-tracking-result { margin-top: 14px; padding-top: 12px; border-top: 1px solid #dce6ef; }
.admin-issue-tracking-result strong { font-size: 13px; }
.admin-issue-tracking-result p { margin: 5px 0 0; font-size: 13px; line-height: 1.7; white-space: pre-wrap; }
.admin-issue-tracking-note { margin: 8px 0 0; color: #7a561b; font-size: 12px; line-height: 1.65; }
.admin-issue-tracking-evidence { margin-top: 10px; }
.admin-issue-tracking-evidence summary,
.admin-tracking-manual > summary { cursor: pointer; color: #175e95; font-size: 13px; font-weight: 700; }
.admin-tracking-manual { margin-top: 16px; padding-top: 14px; border-top: 1px solid #e2e9ef; }
.admin-tracking-manual[open] > summary { margin-bottom: 14px; }
@media (max-width: 620px) {
  .admin-issue-tracking { padding: 13px; }
  .admin-issue-tracking dl { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .admin-issue-tracking dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
  .admin-issue-tracking dd { margin: 0; text-align: right; }
}
.admin-workbench-task .admin-issue-card-heading h4 { font-size: 18px; line-height: 1.45; }
.admin-workbench-task .admin-issue-card-heading > strong {
  max-width: 48%;
  flex: 0 1 auto;
  padding: 6px 10px;
  color: #285f8c;
  background: #edf5fc;
  border: 1px solid #caddea;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1.4;
  text-align: right;
  white-space: normal;
  overflow-wrap: anywhere;
}

.admin-workbench-task > .admin-decision-card,
.admin-workbench-task .admin-issue-card > .admin-decision-card {
  margin-top: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.admin-workbench-task .admin-maintenance-form { margin-top: 18px; padding-top: 18px; }
.admin-workbench-task .admin-issue-card > p { font-size: 13px; line-height: 1.65; }
.admin-workbench-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.admin-workbench-filters[hidden] { display: none; }
.admin-workbench-filters > button { padding: 10px 14px; border: 1px solid #d7e1eb; border-radius: 10px; background: #fff; color: #475b73; font: inherit; cursor: pointer; }
.admin-workbench-filters > button[aria-selected="true"] { border-color: #2459a8; background: #eaf1fd; color: #174783; }
.admin-workbench-filters > button > strong { margin-left: 5px; font-size: 12px; }
.admin-workbench-filters > p { flex-basis: 100%; margin: 2px 0 0; color: #60738a; font-size: 13px; line-height: 1.6; }
.admin-verification-card { min-width: 0; color: #3f526a; }
.admin-verification-card > header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; color: #253c58; }
.admin-verification-card p { line-height: 1.75; overflow-wrap: anywhere; }
.admin-verification-next-action { padding: 14px 16px; border-radius: 10px; background: #f3f7fb; margin: 14px 0; }
.admin-verification-next-action p { margin: 6px 0 0; }
.admin-verification-card summary { cursor: pointer; color: #2b568d; font-size: 13px; }
.admin-verification-card dl { display: grid; gap: 12px; font-size: 13px; }
.admin-verification-card dt { color: #64758b; }
.admin-verification-card dd { margin: 4px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }

.admin-maintenance-ai-evidence-list,
.admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list {
  display: grid;
  gap: 8px;
}

.admin-maintenance-ai-evidence-list li,
.admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list li {
  min-width: 0;
  display: block;
  padding: 9px 11px;
  background: #f7f9fc;
  border: 1px solid #dde6ed;
  border-radius: 8px;
}

.admin-maintenance-ai-evidence-list a,
.admin-decision-evidence .admin-maintenance-ai-evidence-list a {
  min-width: 0;
  display: block;
  padding: 0;
  overflow: hidden;
  color: #075abd;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: 13px;
  font-weight: 760;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-maintenance-ai-evidence-list .admin-link-unavailable { padding: 0; font-size: 13px; }
.admin-decision-actions .button-secondary { box-shadow: 0 3px 10px rgba(21, 53, 84, 0.045); }

.admin-workbench-task .admin-decision-evidence {
  margin-top: 20px;
  padding: 17px 18px;
  background: #f7f9fc;
  border: 1px solid #d9e4ed;
  border-radius: 12px;
}

.admin-workbench-task .admin-decision-evidence > strong {
  display: block;
  color: #35536d;
  font-size: 14px;
}

.admin-workbench-task .admin-maintenance-ai-evidence-list,
.admin-workbench-task .admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}

.admin-workbench-task .admin-maintenance-ai-evidence-list li,
.admin-workbench-task .admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list li {
  min-width: 0;
  max-width: min(280px, 100%);
  display: flex;
  flex: 0 1 auto;
  padding: 0;
  overflow: hidden;
  background: transparent;
  border: 0;
  border-radius: 0;
}

.admin-workbench-task .admin-maintenance-ai-evidence-list a,
.admin-workbench-task .admin-decision-evidence .admin-maintenance-ai-evidence-list a,
.admin-workbench-task .admin-maintenance-ai-evidence-list .admin-link-unavailable {
  min-width: 0;
  max-width: 280px;
  min-height: 44px;
  display: block;
  box-sizing: border-box;
  padding: 10px 12px;
  overflow: hidden;
  color: #075abd;
  background: #fff;
  border: 1px solid #cbddea;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 760;
  line-height: 22px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-workbench-task .admin-maintenance-ai-evidence-list .admin-link-unavailable { color: #718398; }

.admin-ai-revision-state {
  margin-top: 16px;
  padding: 14px 16px;
  display: grid;
  gap: 4px;
  border: 1px solid #b9d9ce;
  border-radius: 10px;
  color: #1d6253;
  background: #edf9f5;
}

.admin-ai-revision-state strong { font-size: 14px; }
.admin-ai-revision-state span { font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.admin-ai-revision-state.is-failed { color: #8b3f39; background: #fff2f0; border-color: #e3b9b5; }

.admin-ai-revision-panel {
  margin-top: 16px;
  padding: 17px;
  background: #f3f7fb;
  border: 1px solid #d6e2ec;
  border-radius: 11px;
}

.admin-ai-revision-panel[hidden] { display: none; }
.admin-ai-revision-panel .form-field { margin: 0; }
.admin-ai-revision-panel textarea { min-height: 112px; resize: vertical; }
.admin-ai-revision-panel small { color: #62788e; font-size: 12px; line-height: 1.55; }
.admin-ai-revision-actions { margin-top: 12px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.admin-ai-revision-actions .button { min-height: 44px; }

@media (max-width: 620px) {
  .admin-monthly-selection > .admin-monthly-runtime-board { margin-top: 18px; padding: 15px; }
  .admin-monthly-runtime-controls { min-width: 0; width: 100%; justify-items: stretch; }
  .admin-monthly-runtime-controls > strong { width: fit-content; white-space: normal; }
  .admin-monthly-run-control-actions { grid-template-columns: 1fr; }
  .admin-workbench-competition-heading { padding: 18px 16px; align-items: flex-start; flex-direction: column; }
  .admin-workbench-competition-heading > strong { align-self: flex-start; }
  .admin-workbench-competition-heading h3 { font-size: 19px; }
  .admin-workbench-task-list { padding: 12px; gap: 12px; }
  .admin-workbench-task { padding: 15px; }
  .admin-workbench-task .admin-issue-card-heading { gap: 8px; }
  .admin-workbench-task .admin-issue-card-heading > strong { max-width: 100%; text-align: left; }
  .admin-workbench-task .admin-decision-evidence { padding: 15px; }
  .admin-workbench-task .admin-maintenance-ai-evidence-list li,
  .admin-workbench-task .admin-monthly-decision-card .admin-decision-evidence .admin-maintenance-ai-evidence-list li { max-width: 100%; }
  .admin-workbench-task .admin-maintenance-ai-evidence-list a,
  .admin-workbench-task .admin-decision-evidence .admin-maintenance-ai-evidence-list a,
  .admin-workbench-task .admin-maintenance-ai-evidence-list .admin-link-unavailable {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .admin-ai-revision-panel { padding: 15px; }
  .admin-ai-revision-actions { display: grid; grid-template-columns: 1fr; }
  .admin-ai-revision-actions .button { width: 100%; }
}

/* 2026-09 large-display responsive canvas */
@media (min-width: 1600px) {
  body:not(.admin-body) {
    --shell: clamp(1360px, 76vw, 1600px);
    font-size: 16px;
  }

  .admin-body { --shell: clamp(1440px, 88vw, 1920px); }

  .brand-copy strong,
  .primary-nav a { font-size: 17px; }

  .home-hero-stage { width: min(1120px, 100%); }
  .home-hero h1 {
    max-width: 1120px;
    margin-inline: auto;
  }
  .home-hero .hero-search { width: min(980px, 100%); }
  .home-quick-links { width: min(1280px, 100%); }

  .community-layout {
    max-width: 1480px;
    margin-inline: auto;
    grid-template-columns: minmax(0, 1fr) minmax(286px, 320px);
  }

  .detail-content-grid {
    max-width: 1500px;
    margin-inline: auto;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 400px);
  }

  .my-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .level-tabs button { font-size: 16px; }
  .level-tabs small { font-size: 12px; }
  .catalog-header { font-size: 13px; }
  .catalog-row { min-height: 140px; }
  .catalog-cell { padding: 24px 20px; }
  .level-cell small,
  .direction-cell .category-tag { font-size: 11px; }
  .name-cell h3 { font-size: 17px; }
  .name-cell p,
  .organizer-cell p,
  .catalog-month,
  .fee-fact small,
  .detail-link { font-size: 14px; }
  .compact-actions .button,
  .compact-actions .favorite-star-button-row { font-size: 13px; }

  .admin-body:not(.admin-login-mode) .admin-heading h1 {
    font-size: clamp(38px, 2.25vw, 44px);
  }

  .admin-body:not(.admin-login-mode) .admin-heading .admin-guide {
    max-width: 980px;
    font-size: 15px;
  }

  .admin-section-tabs {
    gap: 7px;
    padding: 7px;
    border-radius: 12px;
  }

  .admin-section-tabs button {
    min-height: 54px;
    padding: 10px 12px;
    font-size: 15px;
  }

  .admin-section-heading h2 { font-size: clamp(32px, 2vw, 40px); }
  .admin-section-heading p:last-child {
    max-width: 940px;
    font-size: 15px;
  }

  .admin-overview-destination {
    min-height: 252px;
    padding: 24px;
  }

  .admin-overview-destination-heading > b {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    font-size: 11px;
  }

  .admin-overview-destination-heading > strong { font-size: 16px; }
  .admin-overview-destination-note,
  .admin-overview-destination-action { font-size: 13px; }
  .admin-overview-destination-breakdown small,
  .admin-overview-level-breakdown strong,
  .admin-overview-ai-breakdown strong { font-size: 11px; }
  .admin-overview-destination-breakdown strong,
  .admin-overview-level-breakdown span,
  .admin-overview-ai-breakdown span { font-size: 14px; }

  .admin-monthly-runtime-item > div > span,
  .admin-monthly-runtime-item > small,
  .admin-monthly-runtime-queue-summary > div > span,
  .admin-monthly-runtime-queue-summary li,
  .admin-monthly-selection-identity small,
  .admin-monthly-selection-state > strong { font-size: 12px; }

  .admin-monthly-runtime-item > div > strong,
  .admin-monthly-selection-identity strong { font-size: 16px; }

  .admin-monthly-runtime-item > p,
  .admin-monthly-selection-meta,
  .admin-monthly-selection-toolbar > p { font-size: 13px; }

  .admin-monthly-maintenance-summary > article > span,
  .admin-monthly-selection-filters .form-field > span,
  .admin-monthly-selection-filters .admin-monthly-multi-filter summary > span {
    font-size: 14px;
  }

  .admin-monthly-maintenance-summary > article > strong { font-size: 34px; }
  .admin-monthly-maintenance-summary > article > small,
  .admin-monthly-runtime-board > header p:last-child,
  .admin-monthly-selected-count span { font-size: 13px; }
  .admin-monthly-selection > header p:last-child { max-width: 980px; font-size: 14px; }
  .admin-monthly-selection-filters .form-field :is(input, select),
  .admin-monthly-selection-filters .admin-monthly-multi-filter summary strong { font-size: 15px; }
  .admin-monthly-selection-toolbar .button,
  .admin-monthly-run-control-actions .button { font-size: 13px; }
}

@media (min-width: 2400px) {
  body:not(.admin-body) {
    --shell: 1600px;
    font-size: 17px;
  }

  body:is([data-page="home"], [data-page="competitions"], [data-page="ai"]) {
    --shell: clamp(1600px, 68vw, 1920px);
  }

  .brand-copy strong,
  .primary-nav a { font-size: 18px; }

  .home-hero-stage { width: min(1240px, 100%); }
  .home-hero h1 {
    width: min(1240px, 100%);
    max-width: 1240px;
  }
  .home-hero .hero-search { width: min(1080px, 100%); }
  .home-quick-links { width: min(1440px, 100%); }
}

@media (min-width: 3200px) {
  body:not(.admin-body) { font-size: 18px; }
}

/* Mobile discovery: keep the first competition and its timing in reach. */
@media (max-width: 620px) {
  #admin-students-search-form { grid-template-columns: 1fr; }

  body[data-page="my"] .my-sidebar { grid-template-columns: minmax(100px, 0.7fr) minmax(0, 1.3fr); }
  body[data-page="my"] .my-sidebar-tabs button { min-height: 44px; gap: 4px; padding-inline: 4px; white-space: normal; }
  body[data-page="my"] .my-sidebar-tabs button > span { overflow: visible; text-overflow: clip; }
  body[data-page="my"] .my-sidebar-tabs button > strong { flex-shrink: 0; }

  body[data-page="competitions"] .page-intro {
    padding-top: 24px;
    padding-bottom: 20px;
  }
  body[data-page="competitions"] .page-intro h1 { margin-bottom: 8px; font-size: 30px; }
  body[data-page="competitions"] .page-intro > p { font-size: 14px; line-height: 1.65; }
  body[data-page="competitions"] .page-intro > .page-intro-guide { margin-top: 8px; font-size: 12px; }
  body[data-page="competitions"] .catalog-shell { padding-top: 14px; }
  body[data-page="competitions"] .level-tabs button { min-height: 46px; padding: 9px 16px; }
  body[data-page="competitions"] .catalog-toolbar { gap: 12px; margin: 16px 0 12px; }
  body[data-page="competitions"] .filter-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-bottom: 0; }
  body[data-page="competitions"] .filter-row .subtle-button { grid-column: auto; min-height: 45px; }
  body[data-page="competitions"] .result-bar { margin-bottom: 12px; }
  body[data-page="competitions"] .catalog-row { padding: 16px 14px; }
  body[data-page="competitions"] .direction-cell { margin-top: 10px; }
  body[data-page="competitions"] .timing-status-cell { margin-top: 8px; }

  body[data-page="ai"] .ai-cover,
  body[data-page="ai"] .ai-cover .ai-hero-inner { min-height: 0; }
  body[data-page="ai"] .ai-cover .ai-hero-inner { padding-block: 28px; }
  body[data-page="ai"] .ai-cover h1 { margin: 8px 0 16px; font-size: clamp(32px, 8.5vw, 38px); }
  body[data-page="ai"] .ai-cover .ai-hero-actions { margin-top: 18px; }
  body[data-page="ai"] .ai-hero-club-promo { margin-top: 12px; }
  body[data-page="ai"] .ai-map-section { padding-block: 28px 40px; }
  body[data-page="ai"] .ai-map-heading { gap: 14px; }
  body[data-page="ai"] .ai-map-section .section-heading { margin-bottom: 16px; }
  body[data-page="ai"] .ai-map-lead > .ai-eyebrow { margin-bottom: 6px; }
  body[data-page="ai"] .ai-map-lead h2 { font-size: 25px; }
  body[data-page="ai"] .ai-map-lead > p:last-child { font-size: 13px; line-height: 1.65; }
  body[data-page="ai"] .ai-level-guide { padding: 12px 14px; border-radius: 12px; box-shadow: none; }
  body[data-page="ai"] .ai-level-guide > summary { min-height: 22px; line-height: 22px; font-size: 13px; }
  body[data-page="ai"] .ai-level-guide[open] > summary { margin-bottom: 12px; }
  body[data-page="ai"] .ai-map-section .ai-difficulty-tabs { margin-bottom: 14px; background: #fbfcff; }
  body[data-page="ai"] .ai-map-section .ai-event-card { padding: 18px 16px 22px; }
  body[data-page="ai"] .ai-map-section .ai-event-card h3 { margin-block: 12px 8px; }
  body[data-page="ai"] .ai-open-section,
  body[data-page="ai"] .ai-club-section { padding-block: 40px; }
}
