@font-face {
  font-family: "Miley Serif";
  src: url("assets/fonts/NotoSerifTC-VF.ttf") format("truetype");
  font-display: swap;
}

@font-face {
  font-family: "Miley Gothic";
  src: url("assets/fonts/CenturyGothic-Regular.ttf") format("truetype");
  font-display: swap;
}

:root {
  --admin-night: #07121f;
  --admin-ink: #0a1726;
  --admin-panel: #0e1e30;
  --admin-panel-raised: #12263a;
  --admin-line: #29445d;
  --admin-line-soft: rgba(133, 176, 207, .18);
  --admin-text: #edf6fb;
  --admin-muted: #98acba;
  --admin-blue: #7bd8ff;
  --admin-blue-soft: #c9efff;
  --admin-gold: #e5bd7a;
  --admin-danger: #ff9f91;
  --admin-serif: "Miley Serif", "Noto Serif TC", serif;
  --admin-sans: "Miley Gothic", "Noto Sans TC", system-ui, sans-serif;
  --admin-header-height: 68px;
}

* { box-sizing: border-box; }

html { background: var(--admin-night); }

body.birthday-admin-shell {
  min-width: 0;
  min-height: 100vh;
  margin: 0;
  color: var(--admin-text);
  background:
    linear-gradient(rgba(123, 216, 255, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(123, 216, 255, .025) 1px, transparent 1px),
    var(--admin-night);
  background-size: 32px 32px;
  font-family: var(--admin-sans);
}

button,
input,
select { font: inherit; }

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

:focus-visible {
  outline: 2px solid var(--admin-blue);
  outline-offset: 3px;
}

[hidden] { display: none !important; }

.birthday-admin-header {
  position: sticky;
  z-index: 30;
  top: 0;
  min-height: var(--admin-header-height);
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
  align-items: center;
  gap: 24px;
  padding: 8px clamp(18px, 3vw, 46px);
  border-bottom: 1px solid var(--admin-line);
  background: rgba(5, 15, 26, .96);
  backdrop-filter: blur(18px);
}

.admin-brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 11px;
  color: inherit;
  text-decoration: none;
}

.admin-brand img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.admin-brand > span { min-width: 0; display: grid; gap: 1px; }
.admin-brand b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--admin-serif); font-weight: 520; }
.admin-brand small { color: var(--admin-muted); font-size: .68rem; }

.admin-header-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  color: var(--admin-muted);
  font-size: .72rem;
  white-space: nowrap;
}

.admin-header-status > span {
  padding: 0 14px;
  border-right: 1px solid var(--admin-line-soft);
}

.admin-header-status > span:last-child { border-right: 0; }

.admin-mode,
.admin-command-state {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--admin-blue-soft);
}

.admin-mode i,
.admin-command-state i,
.admin-gate-status i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--admin-blue);
  box-shadow: 0 0 12px rgba(123, 216, 255, .78);
}

.admin-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

.admin-header-actions a,
.admin-header-actions button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 13px;
  color: var(--admin-text);
  border: 1px solid var(--admin-line);
  background: transparent;
  text-decoration: none;
}

.admin-header-actions a { color: var(--admin-blue-soft); }

.birthday-admin-gate {
  min-height: calc(100vh - var(--admin-header-height));
  display: grid;
  place-items: center;
  padding: clamp(20px, 5vw, 64px);
}

.admin-login-card {
  width: min(720px, 100%);
  position: relative;
  padding: clamp(28px, 5vw, 58px);
  border: 1px solid var(--admin-line);
  background: var(--admin-ink);
  box-shadow: 0 34px 90px rgba(0, 0, 0, .34);
}

.admin-login-card::before {
  content: "";
  position: absolute;
  inset: -1px auto -1px -1px;
  width: 3px;
  background: var(--admin-blue);
  box-shadow: 0 0 22px rgba(123, 216, 255, .42);
}

.admin-gate-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--admin-line-soft);
  color: var(--admin-muted);
  font-size: .74rem;
}

.admin-gate-status span { display: inline-flex; align-items: center; gap: 8px; color: var(--admin-blue-soft); }
.admin-gate-status b { font-weight: 400; }

.admin-login-card h1 {
  max-width: 10em;
  margin: clamp(28px, 6vw, 54px) 0 16px;
  font: 430 clamp(2.5rem, 6vw, 4.2rem)/1.08 var(--admin-serif);
  letter-spacing: -.04em;
}

.admin-gate-lead {
  max-width: 42rem;
  margin: 0;
  color: var(--admin-muted);
  line-height: 1.8;
}

.admin-gate-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 34px 0 24px;
  padding: 0;
  list-style: none;
  border-block: 1px solid var(--admin-line-soft);
}

.admin-gate-facts li { min-width: 0; display: grid; gap: 7px; padding: 17px 16px; border-right: 1px solid var(--admin-line-soft); }
.admin-gate-facts li:first-child { padding-left: 0; }
.admin-gate-facts li:last-child { padding-right: 0; border-right: 0; }
.admin-gate-facts b { color: var(--admin-muted); font-size: .7rem; font-weight: 400; }
.admin-gate-facts span { line-height: 1.45; }

.admin-demo-enter,
.admin-record-button {
  min-height: 54px;
  color: #06101a;
  border: 0;
  background: var(--admin-blue);
  font-weight: 700;
  cursor: pointer;
}

.admin-demo-enter { width: 100%; }

.admin-login-disabled { margin-top: 18px; border-top: 1px solid var(--admin-line-soft); }
.admin-login-disabled summary { padding: 16px 0 0; color: var(--admin-muted); cursor: pointer; font-size: .74rem; }
.admin-login-disabled form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.admin-login-disabled label { display: grid; gap: 7px; color: var(--admin-muted); font-size: .72rem; }
.admin-login-disabled input { width: 100%; min-height: 46px; padding: 0 12px; color: var(--admin-muted); border: 1px solid var(--admin-line-soft); background: rgba(255, 255, 255, .025); }
.admin-login-disabled button { grid-column: 1 / -1; min-height: 44px; color: #728797; border: 1px solid var(--admin-line-soft); background: #112033; }

.birthday-admin-main {
  width: min(1760px, 100%);
  min-width: 0;
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 0;
  margin: 0 auto;
  padding: 0 clamp(14px, 2vw, 32px) 64px;
}

.birthday-admin-main:focus { outline: none; }

.birthday-admin-sidebar {
  position: sticky;
  top: calc(var(--admin-header-height) + 22px);
  align-self: start;
  max-height: calc(100vh - var(--admin-header-height) - 44px);
  margin-top: 22px;
  padding: 0 20px 18px 0;
  border-right: 1px solid var(--admin-line);
}

.admin-sidebar-heading { display: flex; align-items: center; gap: 12px; padding: 4px 8px 20px; border-bottom: 1px solid var(--admin-line-soft); }
.admin-sidebar-heading > span { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--admin-line); color: var(--admin-blue); font-family: var(--admin-serif); }
.admin-sidebar-heading div { display: grid; gap: 3px; }
.admin-sidebar-heading b { font-weight: 700; }
.admin-sidebar-heading small { color: var(--admin-muted); }

.birthday-admin-menu { display: grid; padding: 12px 0; }
.birthday-admin-menu a { min-width: 0; min-height: 66px; display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 8px; padding: 9px 10px; color: var(--admin-muted); border-left: 2px solid transparent; text-decoration: none; }
.birthday-admin-menu a > span { color: #5f7a91; font-size: .68rem; }
.birthday-admin-menu a div { min-width: 0; display: grid; gap: 3px; }
.birthday-admin-menu a b { color: inherit; }
.birthday-admin-menu a small { overflow: hidden; text-overflow: ellipsis; color: inherit; font-size: .68rem; white-space: nowrap; }
.birthday-admin-menu a[aria-current="page"] { color: var(--admin-text); border-left-color: var(--admin-blue); background: rgba(123, 216, 255, .075); }
.birthday-admin-menu a[aria-current="page"] > span { color: var(--admin-blue); }

.admin-source-note { margin-top: 18px; padding: 15px; border: 1px solid var(--admin-line-soft); color: var(--admin-muted); }
.admin-source-note b { color: var(--admin-gold); font-size: .72rem; }
.admin-source-note p { margin: 8px 0 0; font-size: .7rem; line-height: 1.65; }

.birthday-admin-workspace { min-width: 0; padding: 22px 0 0 clamp(18px, 2.4vw, 38px); }

.admin-command-bar {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0 0 18px;
  border-bottom: 1px solid var(--admin-line);
}

.admin-command-bar > div:first-child { display: flex; align-items: baseline; gap: 14px; }
.admin-command-bar span { color: var(--admin-muted); font-size: .7rem; }
.admin-command-bar h1 { margin: 0; font: 520 clamp(1.45rem, 2vw, 2rem)/1.1 var(--admin-serif); }
.admin-command-bar > div:last-child { display: grid; justify-items: end; gap: 5px; }
.admin-command-bar small { color: var(--admin-muted); font-size: .65rem; }

.birthday-admin-content { min-width: 0; }

.birthday-admin-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 18px;
  border: 1px solid var(--admin-line);
  background: rgba(9, 24, 39, .74);
}

.birthday-admin-overview > div { min-width: 0; min-height: 94px; display: grid; align-content: center; gap: 5px; padding: 14px 18px; border-right: 1px solid var(--admin-line-soft); }
.birthday-admin-overview > div:last-child { border-right: 0; }
.birthday-admin-overview span,
.birthday-admin-overview small { color: var(--admin-muted); font-size: .68rem; }
.birthday-admin-overview b { overflow: hidden; text-overflow: ellipsis; color: var(--admin-blue-soft); font: 520 clamp(1.1rem, 2vw, 1.5rem)/1.25 var(--admin-serif); white-space: nowrap; }

.birthday-admin-panel { min-width: 0; margin-top: 18px; padding: clamp(18px, 2.6vw, 34px); border: 1px solid var(--admin-line); background: rgba(10, 24, 39, .92); }

.admin-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-bottom: 22px; border-bottom: 1px solid var(--admin-line-soft); }
.admin-panel-heading > div { min-width: 0; }
.admin-panel-heading > div > span { color: var(--admin-blue); font-size: .7rem; }
.admin-panel-heading h2 { max-width: 18em; margin: 5px 0 7px; font: 470 clamp(1.65rem, 3.2vw, 3rem)/1.2 var(--admin-serif); letter-spacing: -.025em; }
.admin-panel-heading p { max-width: 44rem; margin: 0; color: var(--admin-muted); line-height: 1.6; }
.admin-panel-heading > a { min-height: 40px; display: inline-flex; align-items: center; padding: 0 13px; color: var(--admin-blue-soft); border: 1px solid var(--admin-line); text-decoration: none; white-space: nowrap; }

.admin-undo-button { min-height: 40px; padding: 0 14px; color: var(--admin-gold); border: 1px solid rgba(229, 189, 122, .42); background: transparent; }
.admin-undo-button:disabled { opacity: .4; cursor: not-allowed; }

.admin-control-grid { min-width: 0; display: grid; grid-template-columns: minmax(500px, 1.15fr) minmax(300px, .85fr); gap: clamp(18px, 2.5vw, 32px); padding-top: 24px; }
.admin-entry-card { min-width: 0; }
.admin-truth-note { margin: 0 0 20px; padding: 13px 15px; color: #c5d8e5; border-left: 2px solid var(--admin-blue); background: rgba(123, 216, 255, .06); line-height: 1.65; }
.admin-truth-note b { color: var(--admin-blue-soft); }

#birthday-entry-form { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
#birthday-entry-form > label { min-width: 0; display: grid; gap: 7px; }
#birthday-entry-form label > span,
#birthday-entry-form legend { color: var(--admin-muted); font-size: .72rem; }
#birthday-entry-form input,
#birthday-entry-form select { width: 100%; min-width: 0; min-height: 48px; padding: 0 12px; color: var(--admin-text); border: 1px solid var(--admin-line); border-radius: 0; background: #071523; }
#birthday-entry-form input::placeholder { color: #637b8e; }
#birthday-entry-form fieldset { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 2px 0 0; padding: 1px; border: 0; background: var(--admin-line-soft); }
#birthday-entry-form legend { margin-bottom: 7px; padding: 0; }
#birthday-entry-form fieldset label { min-width: 0; min-height: 66px; display: flex; align-items: center; gap: 10px; padding: 11px 12px; background: var(--admin-ink); cursor: pointer; }
#birthday-entry-form fieldset input { width: 18px; min-height: 18px; flex: 0 0 auto; accent-color: var(--admin-blue); }
#birthday-entry-form fieldset span { min-width: 0; display: grid; gap: 3px; color: var(--admin-text); }
#birthday-entry-form fieldset small { color: var(--admin-muted); font-size: .68rem; }
.admin-form-error { grid-column: 1 / -1; margin: 0; padding: 11px 13px; color: #ffd8d2; border-left: 2px solid var(--admin-danger); background: rgba(255, 159, 145, .08); }
.admin-record-button { grid-column: 1 / -1; width: 100%; }

.admin-live-boards { min-width: 0; display: grid; align-content: start; gap: 18px; }
.birthday-vote-board,
.birthday-duration-board { min-width: 0; padding: 18px; border: 1px solid var(--admin-line-soft); background: var(--admin-ink); }
.birthday-vote-board header,
.birthday-duration-board header { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding-bottom: 13px; border-bottom: 1px solid var(--admin-line-soft); }
.birthday-vote-board header span,
.birthday-duration-board header span { color: var(--admin-muted); font-size: .68rem; }
.birthday-vote-board h3,
.birthday-duration-board h3 { margin: 3px 0 0; font: 500 1.35rem/1.2 var(--admin-serif); }
.birthday-vote-board header small { color: var(--admin-gold); font-size: .65rem; }
.birthday-vote-board ol { display: grid; margin: 0; padding: 0; list-style: none; }
.birthday-vote-board li { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--admin-line-soft); }
.birthday-vote-board li:last-child { border-bottom: 0; }
.birthday-vote-board li span { color: var(--admin-muted); }
.birthday-vote-board li b { overflow: hidden; color: var(--admin-gold); font: 520 1.3rem/1 var(--admin-serif); text-overflow: ellipsis; }

.admin-progress-track { position: relative; height: 3px; margin: 58px 0 28px; background: rgba(255, 255, 255, .13); }
.admin-progress-track > i { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--admin-blue); box-shadow: 0 0 14px rgba(123, 216, 255, .7); transition: width .28s ease; }
.admin-progress-track > i[data-progress-tier="20"] { width: 20%; }
.admin-progress-track > i[data-progress-tier="60"] { width: 60%; }
.admin-progress-track > i[data-progress-tier="100"] { width: 100%; }
.admin-progress-track > span { position: absolute; left: var(--mark); top: -35px; transform: translateX(-50%); color: var(--admin-muted); font-size: .62rem; white-space: nowrap; }
.admin-progress-track > span.is-mark-20 { --mark: 20%; }
.admin-progress-track > span.is-mark-60 { --mark: 60%; }
.admin-progress-track > span.is-mark-100 { --mark: 100%; }
.admin-progress-track > span:last-child { transform: translateX(-100%); }
.admin-progress-track > span::after { content: ""; position: absolute; left: 50%; top: 33px; width: 1px; height: 10px; background: var(--admin-line); }
.admin-progress-track > span:last-child::after { left: 100%; }
.admin-progress-track small { display: block; }
.birthday-duration-board > p { margin: 0; color: var(--admin-muted); font-size: .72rem; line-height: 1.6; }

.birthday-admin-recent { margin-top: 26px; border-top: 1px solid var(--admin-line); }
.birthday-admin-recent summary { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 18px; cursor: pointer; list-style: none; }
.birthday-admin-recent summary::-webkit-details-marker { display: none; }
.birthday-admin-recent summary > span { display: flex; align-items: baseline; gap: 12px; }
.birthday-admin-recent summary small { color: var(--admin-muted); }
.birthday-admin-recent summary i { width: 10px; height: 10px; border-right: 1px solid var(--admin-blue); border-bottom: 1px solid var(--admin-blue); transform: rotate(45deg); transition: transform .2s ease; }
.birthday-admin-recent[open] summary i { transform: rotate(225deg); }

.birthday-admin-recent [data-admin-recent],
.birthday-admin-audit [data-admin-audit] { display: grid; border-top: 1px solid var(--admin-line-soft); }
.admin-entry-row,
.admin-audit-row,
.admin-audit-head { min-width: 0; display: grid; grid-template-columns: minmax(92px, 130px) minmax(180px, 1fr) minmax(110px, 150px) minmax(90px, 120px); gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--admin-line-soft); }
.admin-entry-row span,
.admin-audit-row span { color: var(--admin-muted); font-size: .68rem; }
.admin-entry-row div,
.admin-audit-row div { min-width: 0; display: grid; gap: 3px; }
.admin-entry-row small,
.admin-audit-row small { overflow: hidden; color: var(--admin-muted); font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-entry-row strong { color: var(--admin-blue-soft); }
.admin-entry-row > b { justify-self: end; color: var(--admin-gold); }
.admin-empty { margin: 0; padding: 30px 0; color: var(--admin-muted); }

.rule-check-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 24px; border: 1px solid var(--admin-line); }
.rule-check-grid article { min-width: 0; display: grid; gap: 8px; padding: 19px; border-right: 1px solid var(--admin-line-soft); }
.rule-check-grid article:last-child { border-right: 0; }
.rule-check-grid span,
.rule-check-grid small { color: var(--admin-muted); font-size: .68rem; }
.rule-check-grid b { font: 520 clamp(1.15rem, 2vw, 1.55rem)/1.3 var(--admin-serif); }

.admin-rule-stack { display: grid; margin-top: 22px; border-top: 1px solid var(--admin-line); }
.admin-rule-stack details { border-bottom: 1px solid var(--admin-line-soft); }
.admin-rule-stack summary { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 4px; cursor: pointer; }
.admin-rule-stack summary span { font-weight: 700; }
.admin-rule-stack summary small { color: var(--admin-muted); text-align: right; }
.admin-rule-stack details > div { padding: 0 4px 19px; color: #c5d7e4; }
.admin-rule-stack ul { margin: 0; padding-left: 1.15rem; line-height: 1.8; }

.admin-week-plan { margin-top: 24px; border: 1px solid var(--admin-line-soft); }
.admin-week-plan > header { display: flex; justify-content: space-between; gap: 18px; padding: 13px 16px; border-bottom: 1px solid var(--admin-line-soft); }
.admin-week-plan > header span { color: var(--admin-muted); font-size: .7rem; }
.admin-week-plan > div { display: grid; grid-template-columns: repeat(3, 1fr); }
.admin-week-plan article { min-width: 0; display: grid; grid-template-columns: auto 1fr; gap: 5px 12px; padding: 15px 16px; border-right: 1px solid var(--admin-line-soft); }
.admin-week-plan article:last-child { border-right: 0; }
.admin-week-plan article b { grid-row: 1 / span 2; align-self: center; color: var(--admin-blue); font-family: var(--admin-serif); font-size: 1.25rem; }
.admin-week-plan article span { color: var(--admin-text); }
.admin-week-plan article small { color: var(--admin-muted); }

.birthday-admin-audit > .admin-panel-heading > small { color: var(--admin-gold); }
.admin-audit-head { color: var(--admin-muted); font-size: .65rem; }
.birthday-admin-audit [data-admin-audit] { border-top: 0; }

.status-toast {
  position: fixed;
  z-index: 60;
  left: 50%;
  bottom: calc(22px + env(safe-area-inset-bottom));
  width: min(620px, calc(100% - 28px));
  transform: translateX(-50%);
  padding: 13px 18px;
  color: #06111c;
  background: var(--admin-blue-soft);
  box-shadow: 0 14px 44px rgba(0, 0, 0, .38);
  text-align: center;
}

@media (max-width: 1160px) {
  .birthday-admin-main { grid-template-columns: 205px minmax(0, 1fr); }
  .birthday-admin-sidebar { padding-right: 14px; }
  .birthday-admin-workspace { padding-left: 18px; }
  .admin-control-grid { grid-template-columns: 1fr; }
  .admin-live-boards { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 880px) {
  :root { --admin-header-height: 62px; }
  .birthday-admin-header { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 7px 12px; }
  .admin-header-status { display: none; }
  .admin-header-actions { grid-column: 2; }
  .admin-header-actions a { display: none; }
  .birthday-admin-main { display: block; padding: 0 12px 52px; }
  .birthday-admin-sidebar { position: sticky; z-index: 20; top: var(--admin-header-height); max-height: none; margin: 0 -12px; padding: 0 12px; border-right: 0; border-bottom: 1px solid var(--admin-line); background: rgba(5, 15, 26, .97); }
  .admin-sidebar-heading,
  .admin-source-note { display: none; }
  .birthday-admin-menu { grid-template-columns: repeat(3, minmax(112px, 1fr)); padding: 0; overflow-x: auto; scrollbar-width: none; }
  .birthday-admin-menu::-webkit-scrollbar { display: none; }
  .birthday-admin-menu a { min-height: 55px; grid-template-columns: 24px 1fr; padding: 7px 8px; border-left: 0; border-bottom: 2px solid transparent; }
  .birthday-admin-menu a[aria-current="page"] { border-bottom-color: var(--admin-blue); }
  .birthday-admin-menu a small { display: none; }
  .birthday-admin-workspace { padding: 14px 0 0; }
  .admin-command-bar { min-height: 58px; padding-bottom: 12px; }
  .admin-command-bar > div:first-child > span,
  .admin-command-bar > div:last-child > small { display: none; }
  .birthday-admin-overview { grid-template-columns: 1fr 1fr; margin-top: 12px; }
  .birthday-admin-overview > div:nth-child(2) { border-right: 0; }
  .birthday-admin-overview > div:nth-child(-n + 2) { border-bottom: 1px solid var(--admin-line-soft); }
  .birthday-admin-panel { margin-top: 12px; }
  .admin-entry-row,
  .admin-audit-row,
  .admin-audit-head { grid-template-columns: minmax(82px, 110px) minmax(0, 1fr); }
  .admin-entry-row > *:nth-child(n + 3),
  .admin-audit-row > *:nth-child(n + 3) { grid-column: 2; }
  .admin-audit-head > *:nth-child(n + 3) { display: none; }
}

@media (max-width: 620px) {
  .admin-brand img { width: 36px; height: 36px; }
  .admin-brand b { font-size: .86rem; }
  .admin-brand small { font-size: .58rem; }
  .admin-header-actions button { min-height: 36px; padding: 0 11px; }
  .birthday-admin-gate { padding: 14px; }
  .admin-login-card { padding: 24px 20px; }
  .admin-gate-status { align-items: flex-start; flex-direction: column; gap: 8px; }
  .admin-login-card h1 { margin-top: 30px; font-size: clamp(2.35rem, 13vw, 3.6rem); }
  .admin-gate-facts { grid-template-columns: 1fr; }
  .admin-gate-facts li { grid-template-columns: 88px 1fr; padding: 12px 0; border-right: 0; border-bottom: 1px solid var(--admin-line-soft); }
  .admin-gate-facts li:last-child { border-bottom: 0; }
  .admin-login-disabled form { grid-template-columns: 1fr; }
  .admin-login-disabled button { grid-column: auto; }
  .admin-command-bar > div:first-child { gap: 0; }
  .admin-command-bar h1 { font-size: 1.35rem; }
  .birthday-admin-overview > div { min-height: 80px; padding: 11px 13px; }
  .birthday-admin-overview b { font-size: 1.05rem; }
  .birthday-admin-panel { padding: 17px 14px; }
  .admin-panel-heading { align-items: stretch; flex-direction: column; gap: 14px; padding-bottom: 17px; }
  .admin-panel-heading h2 { font-size: 1.85rem; }
  .admin-panel-heading p { font-size: .8rem; }
  .admin-panel-heading > a,
  .admin-undo-button { align-self: flex-start; }
  .admin-control-grid { padding-top: 17px; }
  #birthday-entry-form { grid-template-columns: 1fr; }
  #birthday-entry-form fieldset { grid-column: auto; grid-template-columns: 1fr 1fr; }
  .admin-form-error,
  .admin-record-button { grid-column: auto; }
  .admin-record-button { position: static; min-height: 58px; margin-top: 2px; box-shadow: 0 8px 24px rgba(0, 0, 0, .28); }
  .admin-live-boards { grid-template-columns: 1fr; }
  .birthday-admin-recent summary > span { align-items: flex-start; flex-direction: column; gap: 3px; }
  .rule-check-grid { grid-template-columns: 1fr; }
  .rule-check-grid article { border-right: 0; border-bottom: 1px solid var(--admin-line-soft); }
  .rule-check-grid article:last-child { border-bottom: 0; }
  .admin-rule-stack summary { align-items: flex-start; flex-direction: column; justify-content: center; gap: 4px; padding-block: 12px; }
  .admin-rule-stack summary small { text-align: left; }
  .admin-week-plan > header { align-items: flex-start; flex-direction: column; gap: 4px; }
  .admin-week-plan > div { grid-template-columns: 1fr; }
  .admin-week-plan article { border-right: 0; border-bottom: 1px solid var(--admin-line-soft); }
  .admin-week-plan article:last-child { border-bottom: 0; }
}

/* v35 standalone control-room additions */
.admin-fan-switcher-v35{display:grid;grid-template-columns:minmax(190px,.55fr) 1.45fr;gap:18px;align-items:center;margin:18px 0;padding:16px 18px;border:1px solid rgba(141,216,244,.2);background:rgba(6,27,42,.56)}
.admin-fan-switcher-v35>div:first-child{display:grid;gap:4px}.admin-fan-switcher-v35>div:first-child>b{font-family:var(--admin-serif,"Noto Serif TC",serif);font-size:1.02rem}.admin-fan-switcher-v35>div:first-child>span{color:var(--admin-muted,#9bb2c0);font-size:.76rem}
.admin-fan-switcher-v35>[data-admin-quick-fans]{display:flex;gap:8px;overflow-x:auto;padding:2px;scrollbar-width:thin}
.admin-fan-switcher-v35 button{min-width:126px;padding:11px 13px;border:1px solid rgba(120,210,244,.28);background:rgba(8,43,64,.78);color:var(--admin-ink,#edf8fb);text-align:left;cursor:pointer}
.admin-fan-switcher-v35 button:hover,.admin-fan-switcher-v35 button:focus-visible{border-color:#67d3f6;background:rgba(18,77,103,.82)}
.admin-fan-switcher-v35 button b,.admin-fan-switcher-v35 button small{display:block}.admin-fan-switcher-v35 button small{margin-top:3px;color:#9fc6d5;font-size:.7rem}
.admin-wish-inbox{margin-top:28px;padding-top:24px;border-top:1px solid rgba(128,190,212,.22)}
.admin-wish-inbox>header{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:14px}.admin-wish-inbox>header span{color:#65d5f7;font-size:.68rem;letter-spacing:.15em}.admin-wish-inbox>header h3{margin:4px 0 0;font-family:var(--admin-serif,"Noto Serif TC",serif);font-size:1.5rem}.admin-wish-inbox>header small{color:var(--admin-muted,#9bb2c0)}
.admin-wish-row{margin-top:10px;padding:16px 18px;border:1px solid rgba(128,190,212,.2);background:rgba(8,31,46,.55)}.admin-wish-row[data-wish-state="hidden"]{opacity:.58}
.admin-wish-row header{display:flex;justify-content:space-between;gap:18px;align-items:start}.admin-wish-row header b,.admin-wish-row header small{display:block}.admin-wish-row header small{margin-top:3px;color:var(--admin-muted,#9bb2c0);font-size:.72rem}.admin-wish-row header button{padding:8px 12px;border:1px solid rgba(117,206,236,.3);background:transparent;color:#bceafb;cursor:pointer}.admin-wish-row p{margin:13px 0 0;white-space:pre-wrap;line-height:1.8;color:#e2eef2}
@media (max-width:760px){.admin-fan-switcher-v35{grid-template-columns:1fr}.admin-wish-inbox>header,.admin-wish-row header{align-items:start;flex-direction:column}.admin-wish-row header button{width:100%}}

@media (max-width: 360px) {
  .birthday-admin-menu { grid-template-columns: repeat(3, minmax(104px, 1fr)); }
  .birthday-admin-menu a { grid-template-columns: 1fr; gap: 2px; text-align: center; }
  .birthday-admin-menu a > span { display: none; }
  #birthday-entry-form fieldset { grid-template-columns: 1fr; }
  #birthday-entry-form fieldset label { min-height: 58px; }
  .admin-command-bar > div:last-child { display: none; }
}

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

/* v34: operational control desk. Front-end explanatory modules are removed
   from the primary workflow; selection, gifts and settings stay in one system. */
.admin-fan-console {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 16px;
  margin-top: 18px;
}
.admin-search-block,
.admin-selected-fan-v34,
.admin-entry-panel,
.admin-config-form {
  border: 1px solid var(--admin-line);
  background: rgba(4, 15, 27, .76);
}
.admin-search-block { position: relative; padding: 18px; }
.admin-search-block > label,
.admin-gift-toolbar label {
  display: block;
  margin-bottom: 8px;
  color: var(--admin-muted);
  font-size: .75rem;
}
.admin-search-block > input,
.admin-wave-form input,
.admin-gift-toolbar input,
.admin-close-grid input,
.admin-roster-search input,
.admin-config-form input,
.admin-config-form select {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--admin-line);
  border-radius: 0;
  background: rgba(6, 20, 35, .94);
  color: var(--admin-text);
}
.admin-fan-matches {
  position: absolute;
  z-index: 30;
  top: calc(100% - 12px);
  right: 18px;
  left: 18px;
  display: grid;
  max-height: 250px;
  overflow: auto;
  border: 1px solid var(--admin-blue);
  background: #071726;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .42);
}
.admin-fan-matches:empty { display: none; }
.admin-fan-match {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 14px;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid var(--admin-line-soft);
  border-radius: 0;
  background: transparent;
  color: var(--admin-text);
  text-align: left;
}
.admin-fan-match:hover,
.admin-fan-match:focus-visible { background: rgba(123, 216, 255, .12); }
.admin-fan-match b { font-weight: 600; }
.admin-fan-match span,
.admin-fan-match small { color: var(--admin-muted); }
.admin-selected-fan-v34 {
  display: grid;
  align-content: center;
  gap: 5px;
  min-height: 130px;
  padding: 18px 20px;
  border-left: 3px solid var(--admin-gold);
}
.admin-selected-fan-v34 small,
.admin-selected-fan-v34 span { color: var(--admin-muted); font-size: .74rem; }
.admin-selected-fan-v34 b { font: 520 1.28rem/1.25 var(--admin-serif); }
.admin-selected-fan-v34 em { color: var(--admin-blue-soft); font-style: normal; }
.admin-selected-fan-v34[data-choice-state="missing"] em { color: #f2c48e; }

.admin-entry-mode {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 22px;
  border-bottom: 1px solid var(--admin-line);
}
.admin-entry-mode button,
.admin-campaign-tabs button {
  min-height: 48px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--admin-muted);
}
.admin-entry-mode button[aria-selected="true"],
.admin-campaign-tabs button[aria-selected="true"] {
  color: var(--admin-text);
  background: rgba(123, 216, 255, .1);
  box-shadow: inset 0 -2px var(--admin-blue);
}
.admin-entry-panel { padding: clamp(16px, 2vw, 24px); border-top: 0; }
.admin-mode-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}
.admin-mode-heading span { color: var(--admin-gold); font-size: .72rem; }
.admin-mode-heading h3 { margin: 5px 0 0; font: 520 clamp(1.25rem, 2vw, 1.75rem)/1.2 var(--admin-serif); }
.admin-mode-heading p { max-width: 48ch; margin: 0; color: var(--admin-muted); font-size: .78rem; }
.admin-wave-form {
  display: grid;
  grid-template-columns: 1.2fr .8fr .9fr;
  gap: 14px;
  align-items: end;
}
.admin-wave-form label,
.admin-close-grid label,
.admin-config-form > label { display: grid; gap: 7px; color: var(--admin-muted); font-size: .74rem; }
.admin-auto-choice {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin: 0;
  padding: 11px 14px;
  border-left: 2px solid var(--admin-blue);
  background: rgba(123, 216, 255, .06);
}
.admin-auto-choice b { color: var(--admin-blue-soft); }
.admin-auto-choice span { color: var(--admin-muted); }
.admin-wave-form .admin-form-error { grid-column: 1 / -1; }
.admin-wave-form > button { min-height: 48px; }

.admin-gift-toolbar {
  display: grid;
  grid-template-columns: minmax(170px, .6fr) minmax(260px, 1fr) auto;
  gap: 14px;
  align-items: end;
  margin-bottom: 16px;
}
.admin-gift-toolbar > div:nth-child(2) > span { display: grid; grid-template-columns: 46px 46px 46px minmax(80px, 1fr); gap: 6px; }
.admin-gift-toolbar [data-gift-qty] {
  border: 1px solid var(--admin-line);
  border-radius: 0;
  background: rgba(7, 25, 40, .86);
  color: var(--admin-muted);
}
.admin-gift-toolbar [data-gift-qty][aria-pressed="true"] { border-color: var(--admin-blue); color: var(--admin-text); }
.admin-campaign-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--admin-line);
}
.admin-gift-group { padding: 20px 0 0; }
.admin-gift-buttons {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}
.admin-gift-buttons-dense { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.admin-gift-buttons button {
  min-height: 82px;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 12px;
  border: 1px solid var(--admin-line);
  border-radius: 0;
  background: linear-gradient(150deg, rgba(13, 40, 59, .95), rgba(5, 19, 32, .96));
  color: var(--admin-text);
  text-align: left;
}
.admin-gift-buttons button:hover,
.admin-gift-buttons button:focus-visible { border-color: var(--admin-blue); background: rgba(24, 62, 85, .95); }
.admin-gift-buttons button b { font-weight: 600; }
.admin-gift-buttons button span { color: var(--admin-muted); font-size: .7rem; }
.admin-locked-campaign {
  min-height: 150px;
  display: grid;
  place-content: center;
  gap: 8px;
  text-align: center;
}
.admin-locked-campaign b { font: 520 1.3rem/1.25 var(--admin-serif); }
.admin-locked-campaign p { color: var(--admin-muted); }
.admin-recent-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--admin-line); }
.admin-recent-head h3 { margin: 0; }
.admin-recent-head span { color: var(--admin-muted); font-size: .75rem; }
.admin-recent-log { display: grid; margin-top: 10px; }
.admin-entry-row {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr) minmax(120px, .65fr) 110px;
  gap: 12px;
  align-items: center;
  min-height: 58px;
  padding: 8px 4px;
  border-bottom: 1px solid var(--admin-line-soft);
}
.admin-entry-row small { display: block; color: var(--admin-muted); }

.admin-roster-search { display: grid; gap: 8px; max-width: 520px; margin: 20px 0; color: var(--admin-muted); }
.admin-fan-roster { display: grid; border-top: 1px solid var(--admin-line); }
.admin-roster-row {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(150px, .8fr) minmax(180px, 1fr) auto;
  gap: 16px;
  align-items: center;
  min-height: 68px;
  padding: 10px 4px;
  border-bottom: 1px solid var(--admin-line-soft);
}
.admin-roster-row small,
.admin-roster-row span { color: var(--admin-muted); font-size: .72rem; }
.admin-roster-row em { color: var(--admin-blue-soft); font-style: normal; }
.admin-roster-row button { min-height: 38px; border: 1px solid var(--admin-line); border-radius: 0; background: transparent; color: var(--admin-text); }

.admin-config-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 20px;
  padding: clamp(18px, 3vw, 30px);
}
.admin-config-form small { color: var(--admin-muted); }
.admin-setting-switch {
  grid-column: 1 / -1;
  grid-template-columns: auto 1fr !important;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--admin-line);
}
.admin-setting-switch input { width: 20px; min-height: 20px; }
.admin-setting-switch span { display: grid; gap: 3px; }
.admin-config-form > button { grid-column: 1 / -1; min-height: 50px; }

@media (max-width: 980px) {
  .admin-gift-buttons-dense { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .birthday-admin-menu { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .admin-fan-console,
  .admin-wave-form,
  .admin-gift-toolbar,
  .admin-config-form { grid-template-columns: 1fr; }
  .admin-mode-heading { align-items: start; flex-direction: column; gap: 8px; }
  .admin-auto-choice,
  .admin-setting-switch,
  .admin-config-form > button { grid-column: auto; }
  .admin-campaign-tabs { grid-template-columns: 1fr; }
  .admin-gift-buttons,
  .admin-gift-buttons-dense { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-entry-row { grid-template-columns: 72px minmax(0, 1fr); }
  .admin-entry-row > :nth-child(3),
  .admin-entry-row > :nth-child(4) { justify-self: start; }
  .admin-roster-row { grid-template-columns: 1fr auto; }
  .admin-roster-row > :nth-child(2),
  .admin-roster-row > :nth-child(3) { grid-column: 1 / -1; }
}
@media (max-width: 360px) {
  .admin-gift-buttons,
  .admin-gift-buttons-dense { grid-template-columns: 1fr; }
  .birthday-admin-menu a b { font-size: .64rem; }
}

/* v32: the Golden Voice control-room workflow mapped to the birthday front end. */
.birthday-admin-menu a { grid-template-columns: 42px 1fr; }
.birthday-admin-menu a > span { font-size: .62rem; line-height: 1.25; }
.admin-command-state b { font-weight: 500; }
.birthday-admin-overview .is-source-status b { color: var(--admin-gold); }

.admin-session-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  align-items: stretch;
  margin-top: 22px;
  border: 1px solid var(--admin-line);
  background: rgba(5, 16, 28, .72);
}
.admin-session-strip > div { min-width: 0; display: grid; gap: 5px; padding: 13px 16px; border-right: 1px solid var(--admin-line-soft); }
.admin-session-strip span { color: var(--admin-muted); font-size: .66rem; }
.admin-session-strip b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-session-strip .is-pending { color: var(--admin-gold); }
.admin-session-strip a { display: grid; place-items: center; padding: 0 16px; color: var(--admin-blue-soft); text-decoration: none; }

.admin-fan-source { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; padding: 13px 15px; border: 1px solid var(--admin-line-soft); background: rgba(255, 255, 255, .022); }
.admin-fan-source > div { min-width: 0; display: grid; gap: 4px; }
.admin-fan-source span { color: var(--admin-blue); font-size: .68rem; }
.admin-fan-source small { color: var(--admin-muted); line-height: 1.5; }
.admin-fan-source button,
.admin-operation-card button,
.admin-search-disabled button,
.admin-account-tool-grid button,
.admin-publish-grid button { min-height: 40px; padding: 0 14px; color: #73889a; border: 1px solid var(--admin-line-soft); background: #0b1928; white-space: nowrap; }
button:disabled { cursor: not-allowed; }

.admin-close-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 24px; }
.admin-operation-card { min-width: 0; padding: 19px; border: 1px solid var(--admin-line-soft); background: rgba(5, 16, 28, .56); }
.admin-operation-card > header,
.admin-data-module > header,
.admin-ticket-console > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--admin-line-soft); }
.admin-operation-card header span,
.admin-data-module header span,
.admin-ticket-console header span { color: var(--admin-blue); font-size: .68rem; }
.admin-operation-card h3,
.admin-data-module h3,
.admin-ticket-console h3 { margin: 4px 0 0; font: 500 1.35rem/1.25 var(--admin-serif); }
.admin-source-badge { align-self: flex-start; padding: 5px 8px; color: var(--admin-gold); border: 1px solid rgba(229, 189, 122, .34); font-size: .64rem; font-weight: 500; white-space: nowrap; }
.admin-top-three { display: grid; margin: 0 0 14px; padding: 0; list-style: none; }
.admin-top-three li { min-height: 48px; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--admin-line-soft); }
.admin-top-three li > b { color: var(--admin-gold); font: 500 1.1rem/1 var(--admin-serif); }
.admin-top-three li small { color: var(--admin-muted); }
.admin-operation-card > button { width: 100%; }
.admin-operation-card > p { color: var(--admin-muted); font-size: .74rem; line-height: 1.65; }
.admin-settlement-fields { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 10px; margin: 15px 0; }
.admin-settlement-fields label { display: grid; gap: 6px; color: var(--admin-muted); font-size: .68rem; }
.admin-settlement-fields input { width: 100%; min-width: 0; min-height: 42px; padding: 0 9px; color: var(--admin-muted); border: 1px solid var(--admin-line-soft); background: #071523; }

.admin-campaign-tabs { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 22px; border: 1px solid var(--admin-line); }
.admin-campaign-tabs button { min-height: 50px; padding: 8px 12px; color: var(--admin-muted); border: 0; border-right: 1px solid var(--admin-line-soft); background: transparent; }
.admin-campaign-tabs button:last-child { border-right: 0; }
.admin-campaign-tabs button[aria-selected="true"] { color: var(--admin-text); box-shadow: inset 0 -2px var(--admin-blue); background: rgba(123, 216, 255, .065); }
.admin-campaign-panel { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 20px; margin-top: 18px; padding: 21px; border: 1px solid var(--admin-line-soft); background: rgba(5, 16, 28, .55); }
.campaign-brief { min-width: 0; }
.campaign-brief h3 { margin: 9px 0 8px; font: 500 clamp(1.45rem, 2.3vw, 2.15rem)/1.22 var(--admin-serif); }
.campaign-brief > p { max-width: 48rem; margin: 0; color: var(--admin-muted); line-height: 1.7; }
.campaign-brief dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 20px 0 0; border-block: 1px solid var(--admin-line-soft); }
.campaign-brief dl div { min-width: 0; padding: 12px; border-right: 1px solid var(--admin-line-soft); }
.campaign-brief dl div:first-child { padding-left: 0; }
.campaign-brief dl div:last-child { border-right: 0; }
.campaign-brief dt { color: var(--admin-muted); font-size: .65rem; }
.campaign-brief dd { margin: 5px 0 0; line-height: 1.45; }
.admin-state { display: inline-flex; align-items: center; min-height: 26px; padding: 3px 8px; font-size: .64rem; font-weight: 500; }
.admin-state.is-local { color: var(--admin-blue-soft); border: 1px solid rgba(123, 216, 255, .34); }
.admin-state.is-active { color: #b9eccf; border: 1px solid rgba(134, 220, 172, .34); }
.admin-state.is-pending { color: var(--admin-gold); border: 1px solid rgba(229, 189, 122, .34); }
.campaign-result { min-width: 0; padding: 18px; border: 1px solid var(--admin-line-soft); }
.campaign-result > span,
.campaign-result > small { color: var(--admin-muted); font-size: .68rem; }
.campaign-result > b { display: block; margin: 4px 0; color: var(--admin-blue-soft); font: 520 clamp(2rem, 4vw, 3.2rem)/1 var(--admin-serif); }
.campaign-result ul { margin: 18px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--admin-line-soft); }
.campaign-result li { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--admin-line-soft); }
.campaign-result li b { color: var(--admin-gold); }
.campaign-gift-table { display: grid; border: 1px solid var(--admin-line-soft); }
.campaign-gift-table > div { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; padding: 13px; border-bottom: 1px solid var(--admin-line-soft); }
.campaign-gift-table > div:last-child { border-bottom: 0; }
.campaign-gift-table b { color: var(--admin-muted); font-weight: 400; }
.campaign-gift-table strong { min-width: 64px; color: var(--admin-gold); text-align: right; }
.campaign-rule-ledger { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--admin-line-soft); }
.campaign-rule-ledger article { display: grid; gap: 4px; min-height: 100px; align-content: center; padding: 14px; border-right: 1px solid var(--admin-line-soft); border-bottom: 1px solid var(--admin-line-soft); }
.campaign-rule-ledger article:nth-child(2n) { border-right: 0; }
.campaign-rule-ledger article:nth-last-child(-n + 2) { border-bottom: 0; }
.campaign-rule-ledger span,
.campaign-rule-ledger small { color: var(--admin-muted); font-size: .67rem; }
.campaign-rule-ledger b { font: 500 1.25rem/1.2 var(--admin-serif); }
.campaign-pending-box { padding: 18px; border: 1px solid rgba(229, 189, 122, .34); background: rgba(229, 189, 122, .045); }
.campaign-pending-box b { color: var(--admin-gold); }
.campaign-pending-box ul { margin: 12px 0 0; padding-left: 1.15rem; color: var(--admin-muted); line-height: 1.8; }

.admin-service-overview { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 22px; border: 1px solid var(--admin-line); }
.admin-service-overview > div { min-width: 0; display: grid; gap: 5px; padding: 15px; border-right: 1px solid var(--admin-line-soft); }
.admin-service-overview > div:last-child { border-right: 0; }
.admin-service-overview span,
.admin-service-overview small { color: var(--admin-muted); font-size: .66rem; }
.admin-service-overview b { overflow: hidden; text-overflow: ellipsis; color: var(--admin-blue-soft); white-space: nowrap; }
.admin-community-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.admin-data-module { min-width: 0; padding: 19px; border: 1px solid var(--admin-line-soft); background: rgba(5, 16, 28, .52); }
.admin-search-disabled { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin: 15px 0; }
.admin-search-disabled input { min-width: 0; min-height: 43px; padding: 0 11px; color: var(--admin-muted); border: 1px solid var(--admin-line-soft); background: #071523; }
.admin-empty-state { padding: 24px 15px; border: 1px dashed var(--admin-line); text-align: center; }
.admin-empty-state b { color: var(--admin-muted); }
.admin-empty-state p { max-width: 32rem; margin: 7px auto 0; color: #71889a; font-size: .72rem; line-height: 1.6; }
.admin-companion-steps { margin: 15px 0; padding: 0; list-style: none; }
.admin-companion-steps li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--admin-line-soft); }
.admin-companion-steps b { color: var(--admin-muted); font-weight: 500; }
.admin-data-module > p { color: var(--admin-muted); font-size: .72rem; line-height: 1.65; }
.admin-ticket-console { margin-top: 18px; padding: 19px; border: 1px solid var(--admin-line-soft); }
.admin-ticket-console header > small { color: var(--admin-muted); }
.admin-ticket-grid { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 15px; border: 1px solid var(--admin-line-soft); }
.admin-ticket-grid article { min-width: 0; min-height: 112px; display: grid; align-content: center; gap: 7px; padding: 13px; border-right: 1px solid var(--admin-line-soft); }
.admin-ticket-grid article:last-child { border-right: 0; }
.admin-ticket-grid article > span { color: var(--admin-blue); font-size: .67rem; }
.admin-ticket-grid article > b { line-height: 1.4; }
.admin-ticket-grid article > small { color: var(--admin-muted); line-height: 1.45; }
.admin-ticket-grid .is-birthday { background: rgba(229, 189, 122, .045); }
.admin-account-tools { margin-top: 18px; border: 1px solid var(--admin-line-soft); }
.admin-account-tools summary { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 17px; cursor: pointer; list-style: none; }
.admin-account-tools summary > span { display: grid; gap: 3px; }
.admin-account-tools summary small { color: var(--admin-muted); }
.admin-account-tool-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; padding: 1px; border-top: 1px solid var(--admin-line-soft); background: var(--admin-line-soft); }
.admin-account-tool-grid article { min-width: 0; padding: 17px; background: var(--admin-ink); }
.admin-account-tool-grid span { color: var(--admin-gold); font-size: .65rem; }
.admin-account-tool-grid h3 { margin: 5px 0; }
.admin-account-tool-grid p { min-height: 3em; color: var(--admin-muted); font-size: .72rem; line-height: 1.55; }
.admin-account-tool-grid button { width: 100%; }

.admin-page-status-list { display: grid; margin-top: 22px; border: 1px solid var(--admin-line-soft); }
.admin-page-status-list article { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto 105px; align-items: center; gap: 18px; padding: 14px 16px; border-bottom: 1px solid var(--admin-line-soft); }
.admin-page-status-list article:last-child { border-bottom: 0; }
.admin-page-status-list article > div { min-width: 0; }
.admin-page-status-list span { color: var(--admin-blue); font-size: .65rem; }
.admin-page-status-list h3 { margin: 3px 0; font-size: 1rem; }
.admin-page-status-list p { margin: 0; color: var(--admin-muted); font-size: .72rem; }
.admin-page-status-list a { color: var(--admin-blue-soft); text-align: right; text-decoration: none; }
.admin-publish-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.admin-publish-grid section { padding: 20px; border: 1px solid var(--admin-line-soft); }
.admin-publish-grid section > span { color: var(--admin-blue); font-size: .68rem; }
.admin-publish-grid h3 { margin: 5px 0 10px; font: 500 1.45rem/1.25 var(--admin-serif); }
.admin-publish-grid ul { margin: 0; padding-left: 1.15rem; color: var(--admin-muted); line-height: 1.8; }
.admin-publish-grid p { color: var(--admin-muted); line-height: 1.7; }
.admin-publish-grid .is-release-gate { border-color: rgba(229, 189, 122, .34); background: rgba(229, 189, 122, .04); }
.admin-publish-grid button { width: 100%; margin-top: 9px; }

.admin-live-login { display: grid; gap: 12px; margin-top: 20px; }
.admin-live-login > label:not(.admin-remember) { display: grid; gap: 7px; color: var(--admin-muted); font-size: .78rem; letter-spacing: .04em; }
.admin-live-login input { width: 100%; min-height: 44px; border: 1px solid var(--admin-line); background: rgba(6, 18, 31, .86); color: var(--admin-paper); padding: 0 13px; }
.admin-live-login .admin-remember { display: flex; align-items: center; gap: 9px; color: var(--admin-muted); font-size: .8rem; }
.admin-live-login .admin-remember input { width: 18px; min-height: 18px; accent-color: var(--admin-cyan); }
.admin-top-three label { display: grid; gap: 4px; }
.admin-top-three input { width: 100%; min-height: 38px; border: 1px solid var(--admin-line-soft); background: rgba(6, 18, 31, .7); color: var(--admin-paper); padding: 0 10px; }
.admin-fan-result-list { display: grid; gap: 7px; margin-top: 10px; }
.admin-fan-result-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 10px 12px; border: 1px solid var(--admin-line-soft); background: rgba(255, 255, 255, .025); }
.admin-fan-result-list article b { color: var(--admin-paper); }
.admin-fan-result-list article span,
.admin-fan-result-list article small { color: var(--admin-muted); }
.admin-fan-result-list article small { grid-column: 1 / -1; }

@media (max-width: 1160px) {
  .admin-campaign-panel { grid-template-columns: 1fr; }
  .admin-ticket-grid { grid-template-columns: repeat(3, 1fr); }
  .admin-ticket-grid article { border-bottom: 1px solid var(--admin-line-soft); }
}

@media (max-width: 880px) {
  .birthday-admin-menu { grid-template-columns: repeat(5, minmax(0, 1fr)); overflow-x: visible; }
  .birthday-admin-menu a { grid-template-columns: 1fr; text-align: center; }
  .birthday-admin-menu a > span { display: none; }
  .birthday-admin-menu a b { font-size: clamp(.64rem, 2.7vw, .78rem); line-height: 1.25; }
  .admin-session-strip { grid-template-columns: 1fr 1fr; }
  .admin-session-strip > div:nth-child(2) { border-right: 0; }
  .admin-session-strip > div:nth-child(-n + 2) { border-bottom: 1px solid var(--admin-line-soft); }
  .admin-session-strip a { min-height: 48px; }
  .admin-service-overview { grid-template-columns: 1fr 1fr; }
  .admin-service-overview > div:nth-child(2) { border-right: 0; }
  .admin-service-overview > div:nth-child(-n + 2) { border-bottom: 1px solid var(--admin-line-soft); }
  .admin-ticket-grid { grid-template-columns: 1fr 1fr; }
  .admin-ticket-grid article:nth-child(2n) { border-right: 0; }
  .admin-account-tool-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .admin-close-grid,
  .admin-community-grid,
  .admin-publish-grid { grid-template-columns: 1fr; }
  .admin-session-strip { grid-template-columns: 1fr; }
  .admin-session-strip > div { border-right: 0; border-bottom: 1px solid var(--admin-line-soft); }
  .admin-campaign-tabs { grid-template-columns: 1fr 1fr; }
  .admin-campaign-tabs button { border-bottom: 1px solid var(--admin-line-soft); }
  .admin-campaign-tabs button:nth-child(2n) { border-right: 0; }
  .admin-campaign-panel { padding: 16px 13px; }
  .campaign-brief dl { grid-template-columns: 1fr; }
  .campaign-brief dl div,
  .campaign-brief dl div:first-child { padding: 10px 0; border-right: 0; border-bottom: 1px solid var(--admin-line-soft); }
  .campaign-brief dl div:last-child { border-bottom: 0; }
  .admin-settlement-fields { grid-template-columns: 1fr; }
  .admin-fan-source { align-items: stretch; flex-direction: column; }
  .admin-fan-source button { width: 100%; }
  .admin-ticket-grid { grid-template-columns: 1fr; }
  .admin-ticket-grid article { border-right: 0; border-bottom: 1px solid var(--admin-line-soft); }
  .admin-page-status-list article { grid-template-columns: 1fr auto; gap: 10px; }
  .admin-page-status-list article > div { grid-column: 1 / -1; }
  .admin-page-status-list a { text-align: left; }
  .admin-top-three li { grid-template-columns: 24px 1fr; }
  .admin-top-three li small { grid-column: 2; }
}

@media (max-width: 360px) {
  .birthday-admin-menu { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .campaign-rule-ledger { grid-template-columns: 1fr; }
  .campaign-rule-ledger article { border-right: 0; border-bottom: 1px solid var(--admin-line-soft); }
  .campaign-rule-ledger article:last-child { border-bottom: 0; }
}

/* v34 final precedence over retained v33 compatibility rules. */
.admin-campaign-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) {
  .birthday-admin-menu { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .admin-campaign-tabs { grid-template-columns: 1fr; }
  .admin-gift-buttons,
  .admin-gift-buttons-dense { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 360px) {
  .birthday-admin-menu { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .admin-gift-buttons,
  .admin-gift-buttons-dense { grid-template-columns: 1fr; }
}
