.vacation-notice-root:empty {
  display: none;
}

.vacation-notice-root {
  width: 100%;
}

.nd-vacation-notice {
  --notice-surface: oklch(96% 0.025 82);
  --notice-surface-deep: oklch(91% 0.05 78);
  --notice-ink: oklch(25% 0.045 265);
  --notice-muted: oklch(43% 0.045 265);
  --notice-accent: oklch(69% 0.16 61);
  --notice-accent-strong: oklch(42% 0.13 42);
  --notice-border: oklch(78% 0.09 72 / 0.72);
  --notice-shadow: oklch(18% 0.04 265 / 0.32);
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  max-width: 950px;
  margin: 0 auto 24px;
  padding: 18px;
  border: 1px solid var(--notice-border);
  border-radius: 18px;
  background: linear-gradient(135deg, var(--notice-surface) 0%, var(--notice-surface-deep) 100%);
  color: var(--notice-ink);
  box-shadow: 0 18px 44px var(--notice-shadow);
}

.nd-vacation-icon {
  width: 62px;
  height: 62px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  color: oklch(98% 0.018 82);
  background: linear-gradient(145deg, var(--notice-accent) 0%, var(--notice-accent-strong) 100%);
  box-shadow: inset 0 1px 0 oklch(100% 0 0 / 0.35), 0 10px 22px oklch(36% 0.12 42 / 0.28);
}

.nd-vacation-icon svg {
  display: block;
  width: 42px;
  height: 42px;
}

.nd-vacation-copy {
  min-width: 0;
}

.nd-vacation-eyebrow,
.nd-vacation-title,
.nd-vacation-message,
.nd-vacation-window {
  margin: 0;
}

.nd-vacation-eyebrow {
  color: var(--notice-accent-strong);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.nd-vacation-title {
  margin-top: 4px;
  color: var(--notice-ink);
  font-size: clamp(1.22rem, 2vw, 1.55rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: 0;
}

.nd-vacation-message {
  max-width: 70ch;
  margin-top: 6px;
  color: var(--notice-muted);
  font-size: 0.98rem;
  font-weight: 520;
  line-height: 1.45;
}

.nd-vacation-window {
  margin-top: 10px;
  color: var(--notice-accent-strong);
  font-size: 0.88rem;
  font-weight: 800;
}

.nd-vacation-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid oklch(42% 0.13 42 / 0.42);
  border-radius: 999px;
  background: oklch(98% 0.02 82 / 0.74);
  color: var(--notice-accent-strong);
  font-size: 0.9rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.nd-vacation-action:hover,
.nd-vacation-action:focus-visible {
  border-color: var(--notice-accent-strong);
  background: oklch(99% 0.018 82);
  color: var(--notice-accent-strong);
  transform: translateY(-1px);
}

.nd-vacation-action:focus-visible {
  outline: 3px solid oklch(77% 0.13 61 / 0.55);
  outline-offset: 2px;
}

.wrap .vacation-notice-root .nd-vacation-notice {
  margin-bottom: 18px;
}

.mdl-layout__content > .vacation-notice-root .nd-vacation-notice {
  margin-top: 18px;
}

.schedule-vacation-root .nd-vacation-notice {
  margin-bottom: 8px;
}

@media (max-width: 720px) {
  .nd-vacation-notice {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    padding: 15px;
    border-radius: 15px;
  }

  .nd-vacation-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
  }

  .nd-vacation-icon svg {
    width: 35px;
    height: 35px;
  }

  .nd-vacation-action {
    grid-column: 1 / -1;
    width: 100%;
  }
}
