.promo-shell {
  margin-bottom: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 8px 26px #18345f12;
}
.promo-toolbar, .promo-navigation, .promo-date-controls, .promo-legend {
  display: flex;
  align-items: center;
  gap: 8px;
}
.promo-toolbar {
  padding: 15px 18px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
}
.promo-navigation button, .promo-date-controls select { min-height: 38px; margin: 0; }
.promo-navigation button { padding: 7px 13px; }
.promo-navigation button[data-promo-shift] { font-size: 20px; line-height: 1; }
.promo-date-controls select {
  width: auto;
  padding: 7px 10px;
  background: #f2f6ff;
  border: 1px solid #c7d6ed;
  color: var(--ink);
  font-weight: 700;
}
.promo-legend { flex-wrap: wrap; margin-left: auto; }
.promo-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(205px, 24%); }
.promo-board { min-width: 0; }
.promo-week, .promo-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.promo-week {
  color: #385581;
  background: #f0f5fe;
  text-align: center;
  font-size: 11px;
  font-weight: 750;
}
.promo-week span { padding: 10px 2px; }
.promo-grid { gap: 1px; background: var(--line); border-block: 1px solid var(--line); }
.promo-grid .promo-day {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  min-width: 0;
  min-height: 95px;
  margin: 0;
  padding: 7px;
  text-align: left;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: var(--ink);
}
.promo-grid .promo-day:hover { background: #f1f6ff; }
.promo-grid .promo-day.selected { background: #edf4ff; box-shadow: inset 0 0 0 2px #315bb2; }
.promo-grid .promo-day.outside { background: #f3f6fa; }
.promo-day:focus-visible { z-index: 1; outline-offset: -3px; }
.promo-day-number {
  display: grid;
  place-items: center;
  align-self: flex-start;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  font-size: 12px;
}
.promo-day-number.today { color: #fff; background: var(--tomato); }
.promo-chip {
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 3px 6px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.35;
}
.promo-chip.occasion { background: #ffebef; color: #98243e; }
.promo-chip.local { background: #e5f6ec; color: #195f3b; }
.promo-chip.plan { background: #e7efff; color: #284780; }
.promo-chip.scheduled { background: #ede7ff; color: #563690; }
.promo-more { font-size: 10px; }
.promo-agenda { padding: 18px; border-left: 1px solid var(--line); }
.promo-agenda h2 { margin: 6px 0 15px; font-size: 17px; }
.promo-agenda p, .promo-ideas p { color: var(--muted); line-height: 1.6; }
.promo-agenda-event { border-top: 1px solid var(--line); padding: 13px 0; }
.promo-agenda-event h3 { margin: 7px 0; font-size: 14px; overflow-wrap: anywhere; }
.promo-agenda-event p, .promo-generated p { white-space: pre-wrap; overflow-wrap: anywhere; }
.promo-agenda-event a { display: block; margin: 8px 0; font-size: 12px; }
.promo-agenda button, .promo-idea-actions button { padding: 7px 10px; font-size: 11px; }
.promo-ideas.card {
  margin: 20px 0;
  border-color: #bdcdeb;
  background: linear-gradient(145deg,#f0f5ff,#fff 62%) !important;
}
.promo-ideas-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 12px;
}
.promo-ideas-header h2 { margin: 5px 0; font-size: clamp(21px,3vw,30px); }
.promo-ideas-header p { margin: 4px 0; }
.promo-ideas [data-promo-generate] { color: #fff; background: #263f78; border-color: #263f78; }
.promo-ideas [data-promo-generate]:hover { background: #1c2e5b; border-color: #1c2e5b; }
.promo-idea-result:not(:empty) { margin: 16px 0; color: var(--muted); }
.promo-generated {
  padding: 16px;
  background: #eaf1ff;
  border: 1px solid #cad9f3;
  border-radius: 12px;
}
.promo-idea-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,200px),1fr));
  gap: 12px;
  margin-top: 16px;
}
.promo-idea-grid article {
  min-width: 0;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.promo-idea-grid h3, .promo-generated h3 { margin: 5px 0; font-size: 16px; }
.promo-idea-grid ul { padding: 0; list-style: none; }
.promo-idea-grid li button {
  border: 0;
  background: transparent;
  color: #195f3b;
  padding: 4px 0;
  text-align: left;
  text-decoration: underline;
}
.promo-idea-actions, .promo-dialog-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.promo-dialog {
  width: min(520px, calc(100% - 30px));
  max-height: calc(100svh - 30px);
  padding: 24px;
  border-radius: 16px;
}
.promo-dialog-actions { justify-content: flex-end; }
.promo-dialog [data-remove-plan] { color: #a1142d; }
@media(max-width: 1000px) {
  .promo-layout { grid-template-columns: 1fr; }
  .promo-agenda { border-left: 0; }
  .promo-legend { margin-left: 0; }
}
@media(max-width: 650px) {
  .promo-toolbar, .promo-agenda { padding: 11px; }
  .promo-grid .promo-day { min-height: 69px; padding: 4px; }
  .promo-day .promo-chip { font-size: 8px; padding-inline: 3px; }
  .promo-day-number { width: 20px; height: 20px; }
}
