body.admin { font-size: 18px; }

.admin-bar { background: var(--aerie-navy-2); color: #fff; border-bottom: 5px solid var(--aerie-maroon); }
.admin-bar-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.brand { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.brand strong { display: block; font: 800 22px/1.1 var(--font-display); }
.brand small { display: block; color: var(--eagle-gold); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.seal.small { width: 52px; height: 52px; border-width: 2px; }
.admin-bar nav { display: flex; gap: 6px; flex-wrap: wrap; }
.admin-bar nav a {
  color: #fff;
  text-decoration: none;
  padding: 10px 14px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 17px;
}
.admin-bar nav a:hover { background: rgba(255,255,255,.12); }
.badge { background: var(--aerie-gold); color: #1B1B1B; border-radius: 999px; padding: 2px 10px; font-size: 14px; margin-left: 4px; }

.admin-wrap { max-width: 1000px; margin: 0 auto; padding: 20px 16px 140px; }

.page-title { font-size: 32px; color: var(--primary); margin-bottom: 16px; }

.issue-head { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; margin-bottom: 16px; }
.issue-pick select { font: 800 22px/1.2 var(--font-display); color: var(--primary); min-width: 280px; }
.deadline { margin: 0; color: var(--ink-soft); }
.pill { display: inline-block; margin-left: 8px; background: #E3F2E7; color: var(--ok); font-weight: 600; font-size: 14px; padding: 2px 10px; border-radius: 999px; }

.notice { background: #EEF6EF; border-left: 6px solid var(--ok); padding: 12px 16px; border-radius: 10px; margin: 0 0 16px; }
.error-notice { background: #FBEDEC; border-left-color: var(--error); color: var(--error); font-weight: 600; }
.new-banner { background: #FFF6E0; border: 2px solid var(--aerie-gold); padding: 12px 16px; border-radius: 10px; font-weight: 600; }

.howto { background: var(--tint); border-radius: 12px; padding: 14px 18px; margin-bottom: 20px; font-size: 17px; }

.empty { background: #fff; border-radius: var(--radius); padding: 40px 24px; text-align: center; }
.empty h2 { color: var(--primary); margin-bottom: 10px; }
.empty p { color: var(--ink-soft); margin: 6px 0; }

.group { margin-bottom: 28px; }
.group-title { font-size: 22px; color: var(--primary); margin: 0 0 10px; display: flex; align-items: center; gap: 10px; }
.group-title .count { font: 600 15px var(--font-body); background: var(--tint-strong); color: var(--primary); border-radius: 999px; padding: 2px 10px; }

.item {
  display: flex;
  gap: 14px;
  background: #fff;
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
  border-left: 6px solid transparent;
}
.item.is-new { border-left-color: var(--aerie-gold); }
.item:has([data-pick]:checked) { box-shadow: 0 0 0 3px var(--aerie-navy-2); }
.pick { flex: none; padding-top: 2px; cursor: pointer; }
.pick input { width: 30px; height: 30px; accent-color: var(--aerie-navy); cursor: pointer; }
.item-body { flex: 1; min-width: 0; }
.item h3 { font-size: 21px; color: var(--ink); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tag { font: 600 13px var(--font-body); padding: 2px 9px; border-radius: 999px; text-transform: uppercase; letter-spacing: .05em; }
.tag-new { background: var(--aerie-gold); color: #1B1B1B; }
.tag-done { background: #E3F2E7; color: var(--ok); }
.meta { color: var(--ink-soft); font-size: 16px; margin: 4px 0 10px; }

.fields { margin: 0; display: grid; grid-template-columns: minmax(140px, 220px) 1fr; gap: 6px 16px; font-size: 17px; }
.fields dt { color: var(--ink-soft); }
.fields dd { margin: 0; overflow-wrap: anywhere; }

.thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.thumbs img { width: 120px; height: 120px; object-fit: cover; border-radius: 10px; display: block; background: var(--tint); }
.thumbs a:hover img { outline: 3px solid var(--aerie-gold); }

.item-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: flex-end; margin-top: 14px; padding-top: 12px; border-top: 1px solid #E6EAF0; font-size: 16px; }
.move { display: inline-flex; align-items: center; gap: 8px; }
.move select { min-height: 42px; padding: 6px 10px; width: auto; font-size: 16px; }
.btn-small {
  min-height: 42px;
  padding: 6px 14px;
  border-radius: 10px;
  border: 2px solid var(--tint-strong);
  background: #fff;
  color: var(--primary);
  font: 600 16px var(--font-body);
  cursor: pointer;
}
.btn-small.danger { color: var(--error); border-color: #F1C9C6; }

.export-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  box-shadow: 0 -2px 12px rgba(0,0,0,.12);
  padding: 12px max(16px, calc((100vw - 1000px) / 2));
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  z-index: 5;
}
.select-all { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; cursor: pointer; }
.select-all input { width: 26px; height: 26px; accent-color: var(--aerie-navy); }
.picked { color: var(--ink-soft); }
.export-bar .btn-send { width: auto; margin-left: auto; min-height: 58px; font-size: 19px; background: var(--eagle-red); }
.export-bar .btn-send:disabled { opacity: .45; cursor: not-allowed; }

.deleted-link { text-align: center; }

.login-card, .panel { background: #fff; border-radius: var(--radius); padding: 24px 20px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.login-card { max-width: 460px; margin: 30px auto; }
.login-card h1 { color: var(--primary); font-size: 30px; margin-bottom: 14px; }
.lead-sm { color: var(--ink-soft); margin-top: 0; }
.panel { margin-bottom: 20px; }
.panel h2 { color: var(--primary); font-size: 24px; margin-bottom: 8px; }
.panel > p { color: var(--ink-soft); margin-top: 0; }
.btn.narrow { width: auto; min-height: 54px; font-size: 18px; }
.inline-form { margin-top: 12px; }
.admin-list { list-style: none; padding: 0; margin: 0 0 16px; }
.admin-list li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #E6EAF0; flex-wrap: wrap; }
details summary { cursor: pointer; font-weight: 600; color: var(--primary-2); padding: 8px 0; }
details form { margin-top: 12px; }

@media (max-width: 640px) {
  .fields { grid-template-columns: 1fr; gap: 0; }
  .fields dd { margin-bottom: 8px; }
  .thumbs img { width: 96px; height: 96px; }
  .export-bar .btn-send { width: 100%; margin-left: 0; }
  .issue-pick select { min-width: 0; }
  .item-actions { justify-content: flex-start; }
}

.below-form { text-align: center; margin: 18px 0 0; }
.sub-head { font: 600 17px var(--font-body); color: var(--ink-soft); margin: 18px 0 4px; }
.copy-link { margin-top: 8px; font-size: 15px; min-height: 48px; }
.notice p { margin: 0 0 6px; }
.tag-role { background: var(--tint-strong); color: var(--primary); margin-left: 6px; }
.role-chip { display: flex; width: 100%; margin-bottom: 10px; font-size: 17px; align-items: flex-start; }
.role-chip input { margin-top: 4px; flex: none; }

/* Calendar */
.cal-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.cal-head .page-title { margin: 0; }
.month-nav { display: flex; align-items: center; gap: 12px; }
.month-nav strong { font: 800 22px var(--font-display); color: var(--primary); min-width: 180px; text-align: center; }
.month-nav a { text-decoration: none; display: inline-flex; align-items: center; }
.print-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.print-row .btn { text-decoration: none; }

.suggestions { border: 2px solid var(--aerie-gold); }
.suggestion { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid #E6EAF0; }
.suggestion .meta { margin: 2px 0 0; }
.suggestion-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.primary-small { background: var(--aerie-navy); color: #fff; border-color: var(--aerie-navy); }

.cal-grid { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; font-size: 13px; }
.cal-row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-row + .cal-row { border-top: 1px solid var(--line); }
.cal-dow div { background: var(--aerie-navy); color: #fff; font-weight: 600; text-align: center; padding: 6px 0; }
.cal-cell { min-height: 92px; padding: 4px 6px; border-left: 1px solid var(--line); display: flex; flex-direction: column; gap: 3px; }
.cal-cell:first-child { border-left: 0; }
.cal-cell.cal-pad { background: #F3F5F9; }
.cal-day { font-weight: 700; color: var(--ink-soft); }
.cal-item { display: block; line-height: 1.25; }
.cal-item small { display: block; color: var(--ink-soft); font-size: 12px; }
.cal-item.event { color: var(--aerie-maroon); font-weight: 700; }
.legend { margin: 10px 0 0; font-size: 15px; display: flex; gap: 18px; }
.legend .cal-item { display: inline; }

.cal-list { list-style: none; padding: 0; margin: 0 0 16px; }
.cal-list > li { padding: 14px 0; border-top: 1px solid #E6EAF0; }
.cal-line { display: grid; grid-template-columns: 220px 1fr; gap: 4px 16px; }
.cal-line .when { color: var(--ink-soft); font-weight: 600; }
.cal-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-start; margin-top: 10px; }
.cal-actions form.inline { display: inline-flex; gap: 8px; align-items: center; }
.cal-actions select { min-height: 42px; padding: 6px 10px; width: auto; font-size: 16px; }
.skip-note { margin: 6px 0 0; color: var(--aerie-maroon); font-size: 16px; }
details.edit[open] { flex-basis: 100%; order: 3; }
details.edit[open] { padding: 12px; background: var(--tint); border-radius: 12px; }
details.edit > summary { display: inline-flex; align-items: center; list-style: none; }
details.edit > summary::-webkit-details-marker, details.add > summary::-webkit-details-marker { display: none; }
details.add > summary { list-style: none; display: inline-flex; color: #fff; }
details.add[open] > summary { margin-bottom: 14px; }
details.add form { background: var(--tint); padding: 16px; border-radius: 12px; }
.small-chip { flex: 0 0 auto; min-height: 48px; padding: 8px 14px; }
.week-boxes { display: none; margin-top: 12px; }
.field:has(input[value="some"]:checked) .week-boxes { display: block; }
.field .chip + .chip { margin-left: 6px; }

@media (max-width: 640px) {
  .cal-grid { font-size: 11px; }
  .cal-cell { min-height: 70px; padding: 3px; }
  .cal-item small { display: none; }
  .cal-line { grid-template-columns: 1fr; }
  .month-nav strong { min-width: 0; font-size: 18px; }
  .field .chip + .chip { margin: 8px 0 0; }
}

.type-tag { margin-left: 6px; vertical-align: middle; text-transform: none; letter-spacing: 0; font-size: 13px; }
.type-special { background: #FFF4D6; color: #13304F; }
.row-icon { width: 24px; height: 24px; vertical-align: -6px; margin-right: 6px; }
.row-note { display: block; color: var(--ink-soft); font-size: 15px; margin-top: 2px; }
.icon-pick { display: flex; flex-wrap: wrap; gap: 8px; }
.icon-chip { position: relative; width: 56px; height: 56px; border: 2px solid var(--line); border-radius: 12px; display: grid; place-items: center; cursor: pointer; background: #fff; }
.icon-chip input { position: absolute; opacity: 0; }
.icon-chip img { width: 32px; height: 32px; }
.icon-chip:has(input:checked) { border-color: var(--aerie-navy); box-shadow: inset 0 0 0 2px var(--aerie-navy); background: var(--tint); }
.icon-chip:focus-within { outline: 4px solid var(--aerie-gold); }
form:has([data-type-pick] option[value="special"]:checked) .icon-field { display: block; }
.icon-field { display: none; }

/* Website screens */
.crumb { margin: 0 0 6px; font-size: 16px; }
.crumb a { color: var(--primary-2); }
.hub { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; margin-bottom: 20px; }
.hub-card { background: #fff; border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.08); border: 2px solid transparent; }
.hub-card:hover { border-color: var(--aerie-navy-2); }
.hub-eyebrow { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }
.hub-title { font: 800 22px var(--font-display); color: var(--primary); }
.hub-note { color: var(--ink-soft); font-size: 16px; }
.ann-mini { display: inline-block; padding: 6px 12px; border-radius: 8px; font-size: 15px; }
.ann-preview { padding: 12px 44px 12px 16px; border-radius: 10px; text-align: center; font-size: 17px; position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 10px; }
.ann-preview strong { font-family: var(--font-display); font-weight: 900; }
.ann-preview .x { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 22px; }
.phone-preview { max-width: 380px; border: 10px solid #1B2430; border-radius: 26px; overflow: hidden; margin-bottom: 18px; background: #fff; padding-bottom: 60px; }
.phone-preview .ann-preview { border-radius: 0; }
.template-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 16px; }
.template-row .btn-small { text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.template-row small { color: var(--ink-soft); font-weight: 400; }
.primary-small small { color: #fff; }
.style-chip .swatch { width: 26px; height: 26px; border-radius: 6px; background: var(--sbg); border: 3px solid var(--sfg); box-shadow: 0 0 0 1px var(--line); }
.grow { flex: 1 1 220px; }
.warn { color: #8A5A00; }
.auto-toggle .chip { width: 100%; align-items: flex-start; }
.auto-toggle input { margin-top: 4px; flex: none; }
.actions-row { align-items: center; }
.actions-row .btn { text-decoration: none; }
.file-input { padding: 12px; }
.upload-wait { color: var(--primary); font-weight: 600; }
.album-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.album-card { background: var(--tint); border-radius: 14px; overflow: hidden; text-decoration: none; color: var(--ink); display: flex; flex-direction: column; }
.album-card img, .album-empty { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: grid; place-items: center; background: #DCE4F0; color: var(--ink-soft); }
.album-info { padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
.album-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.album-photo { position: relative; background: var(--tint); border-radius: 12px; overflow: hidden; padding-bottom: 8px; }
.album-photo.is-cover { box-shadow: 0 0 0 3px var(--aerie-gold); }
.album-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.cover-badge { position: absolute; top: 8px; left: 8px; background: var(--aerie-gold); color: #13304F; font-weight: 700; font-size: 14px; padding: 2px 10px; border-radius: 999px; }
.photo-tools { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px; }
.photo-tools .btn-small { min-height: 40px; padding: 4px 10px; }
.caption-form { display: flex; gap: 6px; padding: 0 8px; }
.caption-form input { min-height: 40px; padding: 6px 10px; font-size: 15px; }
.upload-progress { margin-top: 14px; }
.upload-progress .progress { height: 18px; background: var(--tint); border-radius: 9px; overflow: hidden; }
.upload-progress .bar { height: 100%; width: 0; background: var(--aerie-maroon); transition: width .2s; }
.feedback-msg { font-size: 18px; margin: 8px 0; }
.fixed-note p { color: var(--ink-soft); }
.wording-change { display: flex; flex-direction: column; gap: 2px; }
.wording-change .was { color: var(--ink-soft); text-decoration: line-through; }

/* A clicked button shows it's working. */
.is-busy { cursor: progress !important; opacity: .85; }
.is-busy::before { content: ""; display: inline-block; width: 16px; height: 16px; margin-right: 10px; vertical-align: -2px;
  border: 3px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: busy-spin .8s linear infinite; }
@keyframes busy-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .is-busy::before { animation-duration: 2.4s; } }

/* Show on website */
.btn-web { background: #1E7A3C; border-color: #1E7A3C; color: #fff; }
.btn-web:hover { filter: brightness(1.1); }
.tag-web { background: #E3F2E7; color: #1E7A3C; text-transform: none; letter-spacing: 0; font-size: 14px; padding: 6px 12px; margin-right: auto; }
